アップロードされたスクリプトの使用
以下は、開発のためのアップロードされたスクリプトの例です。この記事のダウンロードファイルは、例のファイルとコードを提供します。圧縮されたファイルをパスにリリースし、ネットワークサーバーの仮想パスを構成します。ブラウザでuploadform.htmlをテストして起動できます。
スクリプトを呼び出します
以下は、BuildUploadRequestメソッドに電話をかける方法です。最初に完全なプロセスを呼び出します:uploadRequest。次に、BuiluploadRequestメソッドを呼び出してから、独立変数の元のバイナリデータのリクエストに送信します。
bytecount = request.totalbytes
requestbin = request.binaryread(bytecount)
dim uploadRequest
uploadRequest = createObjectを設定します
builduploadrequest requestbin
データは分解され、辞書オブジェクトに保存され、item()メソッドで回復します。これらのアイテムデータはVBScript変数に保存でき、コードのどこでも使用できます。データは、クライアントへの応答として送信したり、ASPコードで使用されたり、ファイルでデータベースに入れたりすることができます。
データを取得します
UploadRequestオブジェクトのデータは、アイテム( "key")関数でアクセスできます。今すぐこの状況を考えてみましょう。電子メール制御の価値にアクセスしてください。あなたはこれを行うことができます:
email = uploadRequest.item( "email")。
これはテキストコントロールであるため、コンテンツは文字列であり、この文字列は他のVBScript文字列と同様に使用できます。 バイナリデータの場合、同じ方法でコンテンツを復元できます。
piction = uploadRequest.item( "Blob")。
また、ファイル名やコンテンツタイプなど、他の情報にアクセスすることもできます。それらはテキスト制御です。
contentType = uploadRequest.Item( "Blob")。
filepathname = uploadRequest.Item( "Blob")。
VBScriptコードでデータを使用します
アップロードされたデータは、他の変数と同様にVBScriptコードで使用できます。たとえば、応答としてクライアントに送り返すことができます。
あなたのメールは:<%= email%>です
ヤングのファイル名は<%= filepathName%>
あなたのピクトのファイルタイプは<%= contentType%>です
バイナリデータはクライアントに送信することもできます。コンテンツタイプを設定する必要があり、バイナリデータを使用してBinaryWriteメソッドを書き込むことができます。
Response.ContentType = contentType Response.binarywrite piction
アップロードされたデータをファイルに書き込みます
ファイルクラス制御の場合、目的は、クライアントに送信する代わりに、バイナリデータをファイルまたはデータベースドメインに保存することです。この目的は、ファイルのアップロードに固有の特性です。ファイルシステムオブジェクトを使用して、アップロードされたファイルをサーバーのファイルシステムに保存します。
最初にファイルシステムオブジェクトを作成します。
'filesytemobject component scriptobject = server.createObject( "scripting.filesystemobject")の作成
ファイルシステムオブジェクトを使用して、パスにファイルを作成します。パスは絶対的であり、ファイルシステム(C:/TEMPなど)を直接指します。また、ネットワークサーバーによって定義された仮想パスの下で、相対的なものにすることもできます。 MappathメソッドとPATH_INFOサーバー変数を使用して、仮想パスを絶対パスへのパスを取ります。
書き込み方式には、独立変数としてデュアルバイテット文字列が必要なため、単一のバイト番号が文字列に変換されます。書き込み方式は、このデュアルバイ文字列を変換し、ASCII形式で書き込む責任があります。これにより、オリジナルのシングルバイト文字列を含むバイナリコンテンツが確立されます。このファイルは「アップロード +ファイル名」と名付けました。
'ファイルに作成して書き込みmyfile = scriptobject.createTextfile(server.mappath(request.servervariables_( "path_info")& "uploaded"&filename)
i = 1にlenb(value)へ
myfile.write chr(ascb(value、i、1)))
次
myfile.close
アップロードされたデータをデータベースに起動します
データはデータベースに保存することもできます。コンテンツタイプもデータベースに保存する必要があるため、後でデータを表示できるようにします。まず、データベースとの接続を確立する必要があります。
conn = server.createObject( "adodb.connection")を設定します
conn.open "dsn = wroxdns"、 "user"、 "pass"
次に、接続からレコードセットを作成します。
sql = "mytableの写真、contentTypeを選択してください"
rs = server.createObjectを設定します
rs.oopen sql、conn、3、3、3
レコードセットが作成されたら、バイナリデータをデータベースのBLOBドメインに入れます。
picturechunk = picture&chrb(0)
rs.Fields( "piction")。
rs.Fields( "contentType")= contentType
rs.update
conn.close
ApendChunkメソッドでは、バグを解決する必要があります。実際、バイナリデータに奇妙な数のバイトがある場合、appendchunkメソッドが最後のバイトを送信しないことに気付きました。解決策は、CHR(0)を追加して、すべてのバイトが送信されるようにすることです。他の方法があるかもしれません。もしそうなら、教えてください。
データベースを反映するには、同じレコードセットを使用し、正しいコンテンツタイプを使用して応答としてクライアントに送り返します。
Response.ContentType = rs.Fields( "contentType")
size = rs.fields( "piction")
blob = rs.fields( "piction")。
respons.binarywrite blob
結論は
この記事は、VBScriptを使用してファイルをファイルする完全な方法を示しています。エンコーディングは完全にVBScriptであり、3番目のパーティ製品とは無関係です。
最初にアップロードプロセスを紹介します(HTMLの「MultiPart/Form-Data」コンテンツを使用)。次に、アップロードされたVBScriptコードを詳細に紹介します。最初は、動作文字列のVBScript関数と単一のバイト番号シリーズの簡単なレビュー。次に、スクリプトのコードとデータのアップロードの構造を紹介します。
最後に、ASPコードの変数をアップロードすることから、ファイルを保存するためのデータベースまたはファイルシステムまで、このスクリプトの複数の目的。
以下のリンクをクリックして、<a href = "http://www.asptoday.com/articles/images/20000316.zip">この記事のルーチンコードをダウンロードしてください。