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

推薦する

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

Linux システムに Spring Boot アプリケーションをインストールするための詳細なチュートリアル

Unix/Linux サービスsystemd サービス操作プロセス1. JDKがインストールされたC...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

さまざまなネットワーク画像形式におけるPNGの利点の詳細な説明

BMP は、ハードウェア デバイスに依存せず、広く使用されている画像ファイル形式です。ビットマップ保...

JS で単一ファイルコンポーネントを実装する方法

目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...

SQLでEXPLAINコマンドを使用する方法

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

mysql charset=utf8 本当に意味が分かりますか

1. まずテーブル作成ステートメントを見てみましょう テーブル学生を作成( sid int 主キー ...

MySQL マスターライブラリ binlog (master-log) とスレーブライブラリ relay-log 間のコードの詳細な説明

メインライブラリのバイナリログ: # 2420 で #170809 17:16:20 サーバー ID...

MySQLデータを復元する2つの方法

1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...

MySQL でサーバーのインストールを開始できない場合の解決策について簡単に説明します。

コンピュータに初めて MySQL をインストールする場合、通常このエラー メッセージは表示されません...

MySQL が暗黙のデフォルト値を処理する方法

何人かの学生は、マスターとスレーブの間の不一致の問題に遭遇したと述べました。一般的な状況としては、m...

Vueのレスポンシブシステムの原理の詳細な説明

目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...