Javaファイルのアップロードはどのように機能しますか?

Webアプリケーションでは、ほとんどのファイルアップロードはフォームの形式でサーバーに送信されるため、プログラムにファイルアップロード機能を実装する場合は、最初にファイルをアップロードするためのフォームページを作成する必要があります。サーブレットプログラムがアップロードされたファイルのデータを取得するには、フォームページのmethod属性をpostモードに設定し、enctype属性を「multipart / form-data」に設定する必要があることに注意してください。タイプであり、追加されたファイルの入力タグタイプはファイルタイプに設定されます。例は次のとおりです。

<%--指定表单数据的 enctype 属性以及提交方式 --%>
<form enctype="multipart/form-data" method="post">
<%-- 指定标记的类型和普通表单的名称 --%>
用户名:<input type="text" name="name"/><br/>
<%--指定标记的类型和文件域的名称--%>
选择上传文件:<input type="file" name="myfile"/><br/>

アップロードしたファイルをブラウザがフォームから送信する場合、ファイルデータはHTTPリクエストメッセージ本文に添付されており、説明にはMIMEタイプ(多目的インターネットメール拡張タイプ)が使用されます。したがって、ブラウザからサーバーに送信されるHTTPメッセージは特別です。具体的な例は次のとおりです。

multipart/form-data;boundary=----------------------------7dfa7a30650
----------------------------7dfa7a30650
Content-Disposition: form-data;name="name"

itcast
----------------------------7dfa7a30650
Content-Disposition: form-data;name="myfile";filename="uploadfile.txt"
Content-Type: text/plain
www.itcast.cn
----------------------------7dfa7a30650--

上記のフォームリクエストボディからわかるように、リクエストボディは複数の部分に分割されており、この部分の内容を解析するのは面倒です。この目的のために、Apache組織はオープンソースコンポーネントCommons-FileUploadを提供しています。これは、「multipart / form-data」タイプのリクエストのさまざまなフォームフィールドを簡単に解析し、1つ以上のファイルをアップロードできます。アップロードされるサイズを制限できます。ファイルやその他のコンテンツであり、優れたパフォーマンスを発揮し、非常に使いやすいです。FileUploadコンポーネントを使用する場合、commons-fileuploadとcommons-ioの2つのjarパッケージをインポートする必要があることに注意してください。

FileUploadコンポーネントがファイルアップロード機能をどのように実装するかを全員がよりよく理解できるように、次に、図6-1に示すように、FileUploadコンポーネントのヘルプファイルを開いてその実装を表示します。
Javaファイルのアップロードはどのように機能しますか?
図1からわかるように、FileUploadコンポーネントは、サーブレットを介したファイルアップロード機能も実装しています。そのワークフローを図2に示します。
Javaファイルのアップロードはどのように機能しますか?
図2からわかるように、ファイルのアップロードには、なじみのないクラスがいくつかあります。これらのクラスは、Apacheコンポーネントによってアップロードされるファイルのコアクラスです。これらのコアクラスに関連する知識については、次のサブセクションで詳しく説明します。

おすすめ

転載: blog.51cto.com/15128443/2656570