フォームタグの Enctype 属性とその応用例の紹介

フォームタグの Enctype 属性とその応用例の紹介
Enctype : ブラウザがデータをサーバーに送り返すときに使用するエンコーディングのタイプを指定します。フォームに写真をアップロードするために使用されます。

エンコードの種類は 3 つあります。

application/x-www-form-urlencoded: 送信前にすべての文字をエンコードします (デフォルト)。これは標準のエンコード形式です。
multipart/form-data: 文字をエンコードしないでください。ファイルアップロードコントロールを含むフォームを使用する場合は、この値を使用する必要があります。
text/plain: フォーム データは、コントロールや書式設定文字を含まないプレーン テキストとしてエンコードされます。

例:

コードをコピー
コードは次のとおりです。

<フォームアクション="${pageContext.request.contextPath}/imageUpload_saveOrUpdate.action" メソッド="post" enctype="multipart/form-data">
<div>
<label>アップロード画像アドレスを選択してください:</label>
<input type="file" name="画像"/>
</div>
</div>
<div>
<input type="submit" value="アップロード"/>
</div>
</フォーム>

フォーム内の 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 に設定した後、文字がエンコードされていない場合、データはバイナリ形式でサーバーに送信されます。このとき、request を使用すると、対応するフォームの値を直接取得することはできません。代わりに、ストリーム オブジェクトを使用して、サーバーに送信されたバイナリ データをデコードし、データを読み取る必要があります。

ファイルをアップロードする場合は、encotype を multipart/form-data に設定する必要があります。

<<:  CSS3 box-shadow プロパティの詳細な例

>>:  Vue はウェブページの言語切り替えの国際化を実装します

推薦する

TypeScript のクラス

目次1. 概要2. シンプルなクラスを定義する3. 継承4. public、private、prot...

JavaScriptはキャンバスを使用して座標と線を描画します

この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介...

MySQL でインデックスとして B+Tree を使用する利点は何ですか?

目次データベースにインデックスが必要なのはなぜですか?インデックスが B+Tree データ構造を使用...

あまり使われていない、または誤解されている HTML タグ 10 個

ここでは、あまり使われていない、または誤解されている 10 個の HTML タグを紹介します。あまり...

CSS で 3D ブック効果を実装するためのサンプル コード

さっそく、レンダリングを見てみましょうソースコードは以下のとおりです <!DOCTYPE ht...

MySQL データベースのデータ テーブルの最適化、外部キーの分析、3 つのパラダイムの使用

この記事では、例を使用して、MySQL データベースのデータ テーブルの最適化、外部キーの使用、およ...

Linux でパスワードを入力せずに sudo コマンドを実行する方法

sudo コマンドを使用すると、信頼できるユーザーは別のユーザー (デフォルトでは root ユーザ...

mysql バックアップ スクリプト mysqldump の使い方の詳細な説明

この記事では、参考までにMySQLバックアップスクリプトを紹介します。具体的な内容は次のとおりです。...

JTAを実装するためにAtomikosと組み合わせたTomcatについて

最近、プロジェクトは環境を切り替え、WebLogic を Tomcat に置き換えました。途中で発生...

Vue3は現在のルーティングアドレスを取得します

正解useRouterの使用: // ルーターパス: "/user/:uid" ...

HTML フォーマットの json のサンプルコード

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

海外でダウンロードできる25個の新鮮で便利なアイコンセット

1. Eコマースアイコン2. アイコンスイーツ2 3. 携帯電話アイコンパック4. 旗アイコンセット...

H5レイアウト実装手順における天井と底部の吸引を解決するための純粋なCSS

どのような製品について言及したいですか?最近、ユーザーがマーケティングの変化をよりよく観察できるよう...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...