フォームタグの 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 はウェブページの言語切り替えの国際化を実装します

推薦する

MySQL 8.0 WITH クエリの詳細

目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

Webデザインチュートリアル(6):デザインへの情熱を持ち続ける

<br />前の記事:Webデザインチュートリアル(5):Webビジュアルデザイン。 1...

React 手書きタブ切り替え問題

親ファイル React をインポートし、{useState} を 'react' か...

CSS3 でクールなスライス画像カルーセル効果を実現

今日は、CSS を使用してクールな画像カルーセル コンポーネントを作成する方法を学びます。その原理は...

iframe の src を about:blank に設定した後の詳細

iframe の src を 'about:blank' に設定した後、"...

ReactとAntdのFormコンポーネントを組み合わせてログイン機能を実装する方法を詳しく説明します

目次1. ReactとAntdを組み合わせてログイン機能を実現2. ReactとAntdを組み合わせ...

MySQL で URL タイムゾーンの罠を回避する方法

序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...

Linux C ログ出力コード テンプレート サンプル コード

序文この記事は主に Linux C でのログ出力コード テンプレートに関する関連コンテンツを紹介し、...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

MySQL をクリーンにアンインストールする方法 (テスト済みで効果的)

Mysql を完全にアンインストールするにはどうすればいいですか?以下の手順に従って実行してくださ...

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...

Linux 上の Vim で色とテーマを変更する方法

Vim は Linux でよく使用されるテキスト エディターです。 Vim は、Sublime や ...

JavaScript ベースで年・月・日の 3 階層連携を実現

この記事では、年、月、日の3段階のリンクを実現するためのJavaScriptの具体的なコードを参考ま...

Linux でユーザーをグループに追加する 4 つの方法の概要

序文Linux グループは、Linux でユーザー アカウントを管理するために使用される組織単位です...