모든 사람 이이 경험을 가지고 있다고 생각합니다. 페이지에 서버의 Word 파일을 가리키는 링크가 있습니다. 클라이언트 머신에 사무실이 설치되면 링크를 클릭하면 Word를 호출하여 열고 찾아보십시오. 클라이언트 시스템에 사무실이 설치되지 않으면 링크를 클릭하면 저장 대화 상자가 나타납니다. 요약하면, 브라우저가 파일 유형을 알고 있으면 자동으로 열립니다. 모르는 경우 고객은 저장하라는 메시지가 표시됩니다. 그러나 때로는 파일의 유형에 관계없이 파일을 열지 않고 클라이언트가 직접 저장할 수 있기를 바랍니다. 이 요구 사항을 충족시키기 위해 서버 하드 디스크에 저장된 파일은 aspupload 구성 요소의 sendbinary 메소드를 사용하여 구현해야합니다. 데이터베이스에 저장된 파일의 경우 레코드 세트를 열고 이진 데이터를 클라이언트에게 직접 출력하면됩니다. 그러나 브라우저 파일의 MIME 유형, 파일 이름 및 파일 크기를 알려야합니다.
1. 서버 측 하드 드라이브의 파일
코드 사본은 다음과 같습니다.
<%
Dimupload, FilePath
setupload = server.createobject ( "persits.upload")
filepath = server.mappath ( ".") & "&"& "2003529213019.txt"
'sendbinary 매개 변수 설명 :
'매개 변수 1 : 파일 물리적 경로
'매개 변수 2 : 파일의 마임 유형과 같은 정보를 브라우저로 전송할지 여부
'매개 변수 3 : 파일 유형, 특정 MIME 유형을 지정할 수 있지만 일반적으로 Application/Octet Binary를 사용할 수 있습니다.
'매개 변수 4 : 클라이언트가 파일을 저장하거나 직접 열 수 있도록하십시오. 사실 : 저장; False (기본값) : 열기
upload.sendbinaryfilepath, true, "application/octet-binary", true
%>
2. 서버 측 데이터베이스의 파일
코드 사본은 다음과 같습니다.
<%
Dimobjconn, objrs
setobjconn = server.createObject ( "adodb.connection")
setObjrs = server.createObject ( "adodb.recordset")
objconn.open "driver = {Microsoft AccessDriver (*. mdb)}; dbq ="& server.mappath ( "db1.mdb")
objrs.open "select*fromt5whowsid = 2", objconn, 1,3
응답 .ContentType = "Application/Octet-stream"
response.addheader "content-disposition", "첨부 파일; filename ="& objrs ( "filename")
response.addheader "content-length", cstr (objrs ( "size")) '여기서 CSTR로 변환해야합니다
응답 .BinaryWriteObjrs ( "파일")
objrs.close
setobjrs = 아무것도 없습니다
objconn.close
setobjconn = 아무것도
%>
이 방법은 파일을 저장할 때 파일 이름과 파일 크기를 동시에 저장해야합니다! 파일 이름과 크기가 지정되지 않은 경우 브라우저에 파일 유형을 알고 있으면 자동으로 열립니다. 모르는 경우 고객은 저장하라는 메시지가 표시됩니다!