나는 모든 사람이 이런 경험을 했다고 믿습니다. 페이지에 서버의 Word 파일을 가리키는 링크가 있습니다. 클라이언트 컴퓨터에 Office가 설치되어 있으면 클라이언트 컴퓨터에 Office가 없을 때 링크를 클릭하면 Word가 호출되어 열립니다. 설치가 완료되면 링크를 클릭하면 저장 대화 상자가 나타납니다. 요약하자면, 브라우저가 파일 형식을 인식하면 자동으로 해당 파일이 열리고, 그렇지 않으면 고객에게 파일을 저장하라는 메시지가 표시됩니다. 그러나 때로는 파일 형식에 관계없이 해당 파일을 열지 않고 클라이언트가 직접 저장하도록 하고 싶을 때도 있습니다. 이 요구 사항을 충족하려면 서버의 하드 디스크에 저장된 파일의 경우 ASPUpload 구성 요소의 SendBinary 메서드를 사용해야 합니다. 데이터베이스에 저장된 파일의 경우 레코드 세트를 연 다음 바이너리 데이터를 클라이언트에 직접 출력하면 됩니다. . 이지만 브라우저에 파일의 MIME 유형, 파일 이름 및 파일 크기를 알려야 합니다.
1. 서버 하드 드라이브의 파일
<%
희미한 업로드, FilePath
업로드 설정 = Server.CreateObject(Persits.Upload)
FilePath = Server.MapPath(.) & / & 2003529213019.txt
'SendBinary 매개변수 설명:
'파라미터 1: 파일의 물리적 경로
'파라미터 2: 파일의 MIME 형식 및 기타 정보를 브라우저로 보낼지 여부
'매개변수 3: 파일 유형, 특정 MIME 유형을 지정할 수 있지만 일반적으로 application/octet-binary를 사용할 수 있습니다
'매개변수 4: 클라이언트가 파일을 저장하거나 직접 열 수 있도록 합니다. 참: 저장, 거짓(기본값): 열기
Upload.SendBinary FilePath,True,application/octet-binary,True
%>
2. 서버측 데이터베이스의 파일
<%
희미한 objConn,objRs
objConn = Server.CreateObject(ADODB.Connection) 설정
objRs = Server.CreateObject(ADODB.RecordSet) 설정
objConn.open 드라이버={Microsoft Access 드라이버(*.mdb)};dbq= & Server.MapPath(db1.mdb)
objRs.open id=2,objConn,1,3인 t5에서 *를 선택합니다.
Response.ContentType = 애플리케이션/옥텟 스트림
Response.AddHeader Content-Disposition,attachment;filename= & objRs(파일 이름)
Response.AddHeader Content-Length,CStr(objRs(size)) '여기에서는 CStr 변환을 사용해야 합니다.
Response.BinaryWrite objRs(파일)
objRs.close
objRs = 없음 설정
objConn.close
objConn = 없음 설정
%>
이 방법을 사용하려면 파일을 저장할 때 파일 이름과 파일 크기를 동시에 저장해야 합니다! 파일 이름과 크기가 지정되지 않은 경우 브라우저가 파일 형식을 인식하면 자동으로 열리며, 그렇지 않으면 클라이언트에 파일을 저장하라는 메시지가 표시됩니다.