ASPはホームページを実現して、どんな種類のファイルを開けても、保存方法にコードを添付します。


皆さんは普段、このような経験があります。ページにはサーバーの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 
%> 
この法律はファイルを保存する時にファイル名とファイルサイズを同時に保存する必要があります。ファイル名とサイズが指定されていない場合、ブラウザがこのファイルタイプを認識すると自動的に開きます。もし知らないならば、やっと取引先に保存するようにヒントを与えます!