Enctype: サーバーにデータを送信するときにブラウザが使用するエンコード タイプを指定します。フォームに画像をアップロードするために使用されます。
エンコード タイプは 3 つあります。
application/x-www-form-urlencoded: 送信前にすべての文字をエンコードします (デフォルト)。これは標準のエンコード形式です。
multipart/form-data: ファイル アップロード コントロールを含むフォームを使用する場合は、この値を使用する必要があります。
text/plain: フォーム データは、コントロールや書式設定文字を含まないプレーン テキストとしてエンコードされます。
例:
< ;form action="${pageContext.request.contextPath}/imageUpload_saveOrUpdate.action" method="post" enctype="multipart/form-data">
enctype= 「フォーム multipart/form-data 内」は、フォームの MIME エンコードを設定することを意味します。デフォルトでは、このエンコード形式は application/x-www-form-urlencoded であり、ファイルのアップロードには使用できません。multipart/form-data が使用されている場合にのみ、ファイル データを完全に転送できます。
enctype="multipart/form-data" はバイナリ データをアップロードすることです。
サーバー側の Request オブジェクトを通じて、対応するフォーム フィールドの値を取得したい場合は、enctype 属性を application/x-www-form-urlencoded 値 (つまり、デフォルト値の場合、設定を表示する必要はありません)。
ファイルをアップロードするときに enctype="multipart/form-data" を設定する必要があるのはなぜですか:
理由: enctype を multipart/form-data 値に設定した後、文字はエンコードされません、データはバイナリ形式でサーバーに送信されます。この時点で、リクエストを使用する場合は、対応する形式の値を直接取得することはできません。代わりに、サーバーに送信されたバイナリ データをデコードする必要があります。データを読み取ります。
ファイルをアップロードする場合は、エンコタイプを multipart/form-data に設定する必要があります。