Webプロジェクトに取り組んでいる場合、多くの場合、ファイルのアップロード機能を使用する必要がありますが、ブラウザ/サーバーベースのアプリケーション環境にさまざまなタイプのファイルをアップロードすることは、常にユーザーに問題を抱えています。では、ファイルをアップロードするASPの方法は何ですか?
1つ。 ASPに基づくファイルアップロードの実装原則の分析
基本原則は、ADOストリームオブジェクトのバイナリリードメソッドを使用して、フォームのすべてのデータを読み取り、必要なファイルデータをインターセプトし、バイナリファイルに保存します。
Uploadファイルページ(upload.htm)の例を次に示します。
html
ファイルオブジェクトはプログラムで使用されているため、upload.aspのbinaryreadメソッドを使用して読み取られる元のデータは、選択したファイル自体のデータだけでなく、パス、タイプ、フォームドメイン名のドメイン名、およびユーザーのハードディスクに関するその他の関連情報の説明も含まれています。このようにして、ファイルの特定のコンテンツを抽出する必要があります。分析によると、データのヘッダー情報とデータの間の分割線は、2組のキャリッジリターンラインブレークであり、最後に情報を分離しています。同様の方法を使用してファイルデータを取得できます。
dim formdata.formsize、dataStart、clstr、divstrformsize = request.totalbytesformdata = 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-2formdata = midb(formdata、dataStart、datasize)formdataはファイルの内容です。
対応する治療は、中央で必要に応じて実行できます。最後の仕事は、ファイルを保存することです。保存するには2つの方法があります。1つは、VBやVCなどのプログラムでバイナリファイル操作メソッドを使用し、プロジェクトに適切なタイプライブラリを追加し、最終的にDLLファイルにコンパイルし、使用時にDLLファイルを登録することです。ファイルストレージプログラムは次のとおりです。
パブリック関数savefile(pathname as string)as string dim objcontext as objectcontext dim objrequest as request set objcontext = getobjectcontext()set objcontext = objcontext( "request") '次のコードは、ファイルストレージの関連操作です。 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、grunta、clstr)-1) datasize = instrb(dataStart+1、formdata、divstr)-datastart-2 formdata = midb(formdata、dataStart、datasize) 'formdataを作成して、バイナリのパスネームを開く#1、formdata close#1 savefile = "ok!"エンド関数
2番目の方法は、ADOストリームで提供されるバイナリファイル操作方法を使用してそれを完了することです。ファイルを保存するステートメントは次のとおりです。Streamobj.savetofile(filename、2)。この種の操作では、関連する操作をクラスファイルに保存できます。適用するときは、ASPプログラムにクラスファイルを含めるだけです。特定の処理方法については、関連する紹介を参照してください。
二。ファイルアップロード実装方法の例
ファイルアップロードを実装するには、コンポーネントまたはコンポーネントフリーの方法を使用できます。 Microsoft Posting Accedor(略してMPA)などのコンポーネントクラスの場合、Microsoftがリリースした無料のサーバーコンポーネントです。このようなコンポーネントのインストールもより便利です。 MicrosoftのMPAの場合、インストールファイルを実行するだけです。一般的なDLLコンポーネントフォームの場合、登録する必要があります。たとえば、aspcnup.dllを使用するには、ウィンドウ2000でregsvr32 [path/] aspcnup.dllを実行するだけで、システムは登録が成功したことを促します。このコンポーネントを使用できます。コンポーネントレスクラスの場合、それを使用する場合、ハンドラーに次のステートメントを含めるだけです。
<! - #include file = "upload.inc" - > set upload = new upload_5xSoft 'アップロードオブジェクトを作成します
プロパティと操作方法については、このコンポーネントのユーザーマニュアルを参照してください。
以下は、aspcnup.dllコンポーネントを使用していくつかのタイプのファイルをアップロードするためのソースコード(upload.asp)です。
<% @言語= "vbscript" set fileup = server.createobject( "aspcn.upload")fileup.maxsize = 200000 fileup.path = "d:/upfile" fileup.upload fileup.count fieldname = fileup.fielup.fieldname(i)if fileup.fileup.fileup.fileup.fileup.filetype(i)= "Zip" ileup.filetype(fieldname)= "rar" then fileup.save fieldname end next set fileup = Nothing%>
ブラウザ/サーバーアプリケーションモデルはまだ急速に開発されています。 Microsoftの新しく発売されたASP.NETでは、ファイルのアップロード機能が組み込まれているため、非常にシンプルで便利です。真新しいテクノロジーとして、ASP.NETは単なるASPの単純なアップグレードではありません。これは、多くの新機能を含むWeb開発のためのまったく新しいフレームワークです。 ASP.NETは、簡単に作成し、より明確な構造コードを提供し、より簡単に再利用して共有できるようになり、より実用的なプログラムを開発できます。
上記はこの記事のすべての内容です。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。また、間違った新しいテクノロジーチャネルをサポートしたいと考えています!