ASP를 사용하여 특정 장치에 대한 웹 페이지를 만들 때 이러한 문제가 발생했습니다. 장치의 이전 MIS 시스템은 일부 Word 파일을 데이터베이스에 바이트 스트림 형식으로 저장했습니다. 이제 사용자는 이러한 Word 파일을 추출하기 위해 ASP를 사용해야 합니다. 데이터베이스에서 데이터를 가져와 웹 페이지에 표시합니다. 처음에는 자연스럽게 서버에 임시 파일을 만들고, 그 임시 파일에 대한 링크를 웹 페이지에 추가할까 하는 생각도 했습니다. 특정 클라이언트가 사용하는 파일은 다른 클라이언트가 사용하는 파일로 덮어쓰여지지 않으며, 사용자에게 전송된 파일을 삭제하는 방법은 실제로 해결하기 어렵습니다. 그럼 더 좋은 방법이 있나요?
이러한 이유로 저는 ASP 참조 서적을 주의 깊게 확인한 결과 Response 개체에 서버에서 클라이언트로 전송되는 콘텐츠의 MIME 유형을 정의하는 contenttype이라는 속성이 있음을 발견했습니다. MIME의 정식 명칭은 Multi Purpose Internet Mail Extensions이며, 이는 다목적 인터넷 메일 확장 기능입니다. 우리는 웹 프로그래밍에서 때때로 Word 또는 Excel 파일에 대한 하이퍼링크를 지정한다는 것을 알고 있습니다. 사용자가 링크를 클릭하면 브라우저가 자동으로 해당 메서드를 호출하여 파일을 엽니다. 이것이 가능한 이유는 사용자의 컴퓨터에 Office를 설치한 후 해당 MIME 리소스 유형이 브라우저에 등록되기 때문입니다. 예를 들어, 단어 파일의 MIME 유형은 Application/msword(전자는 MIME 유형이고 후자는 MIME 하위 클래스)이고, Excel 파일의 MIME 리소스 유형은 Application/msexcel입니다. 실제로 브라우저가 처리할 수 있는 모든 리소스에는 해당 MIME 리소스 유형이 있습니다. 예를 들어 html 파일의 MIME 유형은 Text/html이고 JPG 파일의 MIME 유형은 Image/JPG입니다. 서버와의 상호 작용에서 브라우저는 수신된 데이터의 MIME 유형을 기반으로 어떤 종류의 처리를 수행할지 결정합니다. html 및 JPG와 같은 파일의 경우 브라우저가 해당 파일을 직접 엽니다. , 브라우저는 해당 메소드를 호출하여 파일을 열 수 없습니다. MIME 유형으로 표시되지 않은 파일의 경우 브라우저는 확장자와 파일 내용을 기반으로 해당 유형을 추측합니다. 브라우저가 이를 추측할 수 없으면 이를 application/octet-stream으로 전달합니다. 다양한 파일의 MIME 유형을 이해하려면 win98 내 컴퓨터->보기->폴더 옵션->파일 유형에서 해당 파일을 보십시오.
그래서 저는 ASP에서 먼저 WORD 데이터를 바이트 스트림으로 가져온 다음 해당 콘텐츠 유형 속성을 Application/msword로 표시하고 클라이언트가 이 리소스를 받은 후 이를 클라이언트에 보낼 수 있다고 생각했습니다. MIME 유형을 선택하고 자동으로 클라이언트 컴퓨터에서 Word를 호출합니다(물론 전제는 Word가 클라이언트 컴퓨터에 설치되어 있다는 것입니다. 그렇지 않으면 인식할 수 없는 리소스로 처리되어 사용자에게 이를 열지 않고 저장하라는 메시지가 표시됩니다). 그것을 열어라. 테스트 결과는 매우 좋고, 방법은 간단하고 빠르며, 브라우저는 임베디드 모드(OLE 모드와 유사)를 사용하여 IE5에서 열 수 있으며 효과는 더욱 좋습니다. 다음은 프로그램 내용입니다.
테이블 이름이 tab_word라고 가정합니다. 하나는 Word 데이터의 고유 식별자로 사용되는 id라는 정수이고 다른 하나는 Word 데이터를 저장하는 Blob 유형입니다. 이제 페이지에 ID가 1인 Word 파일의 내용을 표시하려고 합니다.
< %
' conn - 생성된 데이터베이스 연결
'rs -- 결과 세트
rs = conn.execute(선택
id = 1인 tab_word의 worddata)
response.contenttype = 애플리케이션/msword
response.writebinary(rs(워드데이터))
'writebinary를 사용하여 결과 집합의 데이터를 직접 보내도록 주의하고 변수를 사용하지 마십시오.
'이 데이터를 수신합니다. 그렇지 않으면 시스템에서 오류를 보고합니다.
%>
비슷한 방법을 사용하면 Excel, Bmp 및 기타 여러 유형의 데이터를 처리할 수도 있습니다.