ASPはホームページを実現して、どんな種類のファイルを開けても、保存方法にコードを添付します。
1964 ワード
皆さんは普段、このような経験があります。ページにはサーバーのWordファイルにリンクがあります。クライアントマシンにOfficeがインストールされている場合、リンクをクリックしてWordを呼び出してブラウズします。クライアントマシンにOfficeがインストールされていない場合は、リンクをクリックして保存ダイアログが表示されます。まとめてみると、ブラウザでファイルの種類がわかれば、自動的に開きます。知らないなら、お客様に保存を促す。しかし、時にはどんな種類のファイルも開けずにクライアントに保存してもらいたいです。この要求を達成するためには、サーバのハードディスクに保存されているファイルは、ASPUploadコンポーネントのSendBinary方法で実現されますが、データベースに保存されているファイルは、レコードセットを開けて、バイナリデータを直接クライアントに出力すればいいです。ただし、ブラウザファイルのMIMEタイプ、ファイル名、ファイルサイズを教えてください。1.サーバ端末のハードディスク上のファイル
<%
Dim Upload,FilePath
Set Upload = Server.CreateObject("Persits.Upload")
FilePath = Server.MapPath(".") & "\" & "2003529213019.txt"
'SendBinary :
' :
' : MIME
' : , MIME , application/octet-binary
' : 。True: ;False( ):
Upload.SendBinary FilePath,True,"application/octet-binary",True
%>
2.サーバ端末のデータベース内のファイル
<%
Dim objConn,objRs
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRs = Server.CreateObject("ADODB.RecordSet")
objConn.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db1.mdb")
objRs.open "select * from t5 where id=2",objConn,1,3
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition","attachment;filename=" & objRs("filename")
Response.AddHeader "Content-Length",CStr(objRs("size")) ' CStr
Response.BinaryWrite objRs("file")
objRs.close
Set objRs = nothing
objConn.close
Set objConn = nothing
%>
この法律はファイルを保存する時にファイル名とファイルサイズを同時に保存する必要があります。ファイル名とサイズが指定されていない場合、ブラウザがこのファイルタイプを認識すると自動的に開きます。もし知らないならば、やっと取引先に保存するようにヒントを与えます!