【HTML】enctype属性でデータをエンコードしてサーバーに送信

enctype属性HTML
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではHTMLで使う事ができるenctype属性の機能と使い方を解説しています。

enctype属性

enctypeはフォームで受け取ったデータをサーバーに送信する際に、どのようにエンコードするかを指定する機能を持っています。enctype属性が使えるタグはformタグ1つのみとなります。

enctype属性の書き方

enctype属性は対象のformタグに入れるだけでOKです。ただしformタグmethod属性がpostである必要があります。

<form enctype="エンコード方式" method="post">
中略
</form>

enctypeのエンコード方式には3種類あります。

application/x-www-form-unlencoded
URLエンコードを指定。(初期値)
multipart/form-data
データをマルチパートデータとして送信します。テキスト以外(ファイルなど)を扱うときはこれを使います。
text/plain
プレーンテキストで送信

最初のURLエンコードが初期値として設定されています。キーと値のセットで扱われ、複数ある場合は&で区切られます。そしてキーと値に使われているテキストで英数字以外だった場合に、パーセントエンコーディングを行います。これが初期値です。

multipart/form-dataは上のURLエンコードでは扱う事が適切とされていない、バイナリデータを扱うときにも使われます。

text/plainはそのままですね。プレーンテキストです。

formenctype属性について

formenctype属性と言うものがありますが、これはinputタグbuttonタグがtype=”submit”である時に使える属性となります。これらはformタグのenctype属性を無視してそれぞれの指定したエンコード方式を使う」という、簡単に言えば上書き効果を持っています。

<form method="post" enctype="text/plain">
<button type="submit" formenctype="multipart/form-data">送信ボタン</button>
</form>

このように書いた場合、送信ボタンはmultipartの方のエンコードを行います。

まとめ

enctype属性formタグでしか使えませんが、受け取る際のデータをエンコードしてくれます。methodがpostでないと使えない点には注意しましょう。

formenctypeはbuttonタグinputタグで使う事ができます。必要に応じてそちらも使いましょう。

HTMLの基礎
HTMLってどんな言語?書き方やHTMLファイルの作成方法などを解説。
HTMLタグで押さえておきたいポイント3選
HTMLタグを使う上で必ず押さえておいてほしいポイント3つの解説です。
HTMLタグと属性一覧
HTMLタグと属性の一覧です。
tableタグ生成ページ
tableタグの基本形を生成できるページです。
ulタグ・olタグ生成ページ
ulタグolタグの基本形を生成できるページです。
タイトルとURLをコピーしました