ASPによるファイルアップロードの実現方法
3927 ワード
一.ASPに基づくファイルアップロード実現原理分析の基本原理は、ADO StreamオブジェクトのBinaryRead法を用いてFORM中のすべてのデータを読み出し、そこから必要なファイルデータを切り取り、バイナリファイル方式でディスクを格納することである.次に、ファイルページをアップロードする例(upload.html)を示します.
プログラムにはファイルオブジェクトが使用する、このようにUpload.aspでBinaryReadメソッドを使用して読み込まれた元のデータは、選択したファイル自体のデータだけでなく、ユーザーのハードディスク上のファイルのパス、タイプ、ページをコミットするフォームドメイン名などの関連情報の説明も含まれており、ファイルのボリュームコンテンツを抽出する必要があります.解析によれば,データのヘッダ情報とデータの境界線は2対のリターン改行文字であり,末尾にも区切り情報があり,以下のような方法でファイルデータを取得することができる.
中間は必要に応じて、対応する処理を行うことができる.最後の仕事はファイルを保存することです.保存方法は、VBやVCのようなプログラムのバイナリファイルを用いて操作する方法と、エンジニアリングに適切なタイプのライブラリを加えて最終的にDLLファイルにコンパイルし、使用時にそのDLLファイルを登録すればよい方法の2つがあります.ファイル保存プログラムは以下の通りです.
第2の方法は、ADO STREAMで提供するバイナリファイルの操作方法によって行うものであり、ファイルを保存する文は、StreamOBJである.SaveToFile (fileName,2).このような操作では、関連する操作を1つのクラスファイルに保存することができ、アプリケーション時に直接ASPプログラムに含めることができます.具体的な処理方法については、説明を参照してください.二.ファイルアップロード実装方法の例ファイルアップロードを実装するには、コンポーネントまたはコンポーネントなし方式を使用することができる.コンポーネントクラス、例えばmicrosoft posting acceptor(mpaと略称)は、マイクロソフト社が発表した無料サーバーコンポーネントであり、このようなコンポーネントのインストールも便利である.マイクロソフトのmpaでは、インストールファイルを実行すればいいです.一般的なdllコンポーネント形式では、登録する必要があります.例えばaspcnUPを用いる.dllは、Window 2000上でregsvr 32[path]aspcnUPが実行する限りである.dll、システムが登録に成功した情報のヒントがあれば、このコンポーネントを使用することができます.コンポーネントクラスがない場合は、プロセッサに次の文を含めるだけで使用できます.
プロパティと操作方法については、コンポーネントのマニュアルを参照してください.以下、aspcnUP.dllコンポーネントの例として、一部のタイプのファイルのソースコード(upload.asp)をアップロードします.
ブラウザ/サーバアプリケーションモデルは急速に発展しており、マイクロソフトで新たに発売されたASP.NETには、ファイルアップロード機能が内蔵されており、使い勝手が非常に簡単です.新しい技術として、ASP.NETはASPの単純なアップグレードだけでなく、Web開発のための新しいフレームワークであり、多くの新しい特性が含まれています.ASP.NETはより書きやすく、構造がより明確なコードを提供しています.これらのコードを利用すると、再利用と共有が容易になり、より多くのより実用的なプログラムを発行します.
<html>
<body>
<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">
<input type="file" name="FileName">
<INPUT TYPE="Submit" VALUE="Upload"></TD>
</form>
</body>
</html>
プログラムにはファイルオブジェクトが使用する、このようにUpload.aspでBinaryReadメソッドを使用して読み込まれた元のデータは、選択したファイル自体のデータだけでなく、ユーザーのハードディスク上のファイルのパス、タイプ、ページをコミットするフォームドメイン名などの関連情報の説明も含まれており、ファイルのボリュームコンテンツを抽出する必要があります.解析によれば,データのヘッダ情報とデータの境界線は2対のリターン改行文字であり,末尾にも区切り情報があり,以下のような方法でファイルデータを取得することができる.
Dim FormData.FormSize,DataStart,CLStr,DivStr
FormSize=Request.TotalBytes
FormData=Request.BinaryRead(FormSize)
CLStr=ChrB(13)&ChrB(10)
DataStart=InStrB(FormData.CLStr&CLStr)+4
'4
DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
FormData=MidB(FormData,DataStart,DataSize)
FormData 。
中間は必要に応じて、対応する処理を行うことができる.最後の仕事はファイルを保存することです.保存方法は、VBやVCのようなプログラムのバイナリファイルを用いて操作する方法と、エンジニアリングに適切なタイプのライブラリを加えて最終的にDLLファイルにコンパイルし、使用時にそのDLLファイルを登録すればよい方法の2つがあります.ファイル保存プログラムは以下の通りです.
Public Function SaveFile(Pathname As String) As String
Dim objContext As ObjectContext
Dim objRequest As Request
Set objContext=GetObjectContext()
Set objRequest=objContext("Request")
'
Dim FormData() As Byte,CLStr,DivStr
Dim DataStart As Long,DataSize As Long
DataSize=objRequest.TotalBytes
Redim FormData(DataSize-1)
FormData=objRequest.BinaryRead(DataSize)
CLStr=ChrB(13) & ChrB(10)
DataStart=InStrB(FormData,CLStr & CLStr)+4
DivStr=LeftB(FormData,InStrB(FormData,CLStr)-1)
DataSize=InStrB(DataStart+1,FormData,DivStr)-DataStart-2
FormData=MidB(FormData,DataStart,DataSize)
' FormData
Open Pathname For Binary As 1
Put #1,,FormData
Close #1
SaveFile="OK!"
End Function
第2の方法は、ADO STREAMで提供するバイナリファイルの操作方法によって行うものであり、ファイルを保存する文は、StreamOBJである.SaveToFile (fileName,2).このような操作では、関連する操作を1つのクラスファイルに保存することができ、アプリケーション時に直接ASPプログラムに含めることができます.具体的な処理方法については、説明を参照してください.二.ファイルアップロード実装方法の例ファイルアップロードを実装するには、コンポーネントまたはコンポーネントなし方式を使用することができる.コンポーネントクラス、例えばmicrosoft posting acceptor(mpaと略称)は、マイクロソフト社が発表した無料サーバーコンポーネントであり、このようなコンポーネントのインストールも便利である.マイクロソフトのmpaでは、インストールファイルを実行すればいいです.一般的なdllコンポーネント形式では、登録する必要があります.例えばaspcnUPを用いる.dllは、Window 2000上でregsvr 32[path]aspcnUPが実行する限りである.dll、システムが登録に成功した情報のヒントがあれば、このコンポーネントを使用することができます.コンポーネントクラスがない場合は、プロセッサに次の文を含めるだけで使用できます.
<!--#include FILE="upload.inc"-->
set upload=new upload_5xSoft '
プロパティと操作方法については、コンポーネントのマニュアルを参照してください.以下、aspcnUP.dllコンポーネントの例として、一部のタイプのファイルのソースコード(upload.asp)をアップロードします.
<% @ language="vbscript"
Set fileUP=Server.CreateObject("aspcn.Upload")
fileUP.Maxsize=200000
fileUP.Path="d:\upfile"
fileUP.Upload
For i=0 to fileUP.Count
fieldname=fileUP.FieldName(i)
If fileUP.FileType(fieldname)="zip" Or ileUP.FileType(fieldname)="rar" Then
fileUP.Save fieldname
End If
Next
Set fileUP=Nothing
%>
ブラウザ/サーバアプリケーションモデルは急速に発展しており、マイクロソフトで新たに発売されたASP.NETには、ファイルアップロード機能が内蔵されており、使い勝手が非常に簡単です.新しい技術として、ASP.NETはASPの単純なアップグレードだけでなく、Web開発のための新しいフレームワークであり、多くの新しい特性が含まれています.ASP.NETはより書きやすく、構造がより明確なコードを提供しています.これらのコードを利用すると、再利用と共有が容易になり、より多くのより実用的なプログラムを発行します.