<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">input</anchor></code> 要素は、 <code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">type</anchor></code>
属性が <dfn><code class="HTML">file</code></dfn> の時、<dfn>ファイル選択制御子</dfn>となります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <dl><dt><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">type</anchor></code></dt><dd><code class="HTML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">file</anchor></code>
(「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">file</anchor>」 (「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>」) より)</dd><dt><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></dt><dd><table><tbody><tr><td>属性名</td><td>属性値</td><td>既定値</td><td>説明</td><td>出典</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">accept</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ContentTypes</anchor></code></td><td></td><td>受入れ媒体型</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">accesskey</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Character</anchor></code></td><td></td><td></td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">align</anchor></code></td><td></td><td></td><td>配置</td><td>[HTML 4] 非推奨</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">class</anchor></code></td><td></td><td></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">級</anchor></td><td>[HTML 4] %<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">coreattrs</anchor></td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">dir</anchor></code></td><td></td><td></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書字方向</anchor></td><td>[HTML 4] %<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">i18n</anchor></td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">disabled</anchor></code></td><td>(真偽値属性)</td><td>(偽)</td><td>無効</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">id</anchor></code></td><td></td><td></td><td>一意識別子</td><td>[HTML 4] %coreattrs</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lang</anchor></code></td><td></td><td></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">自然言語</anchor></td><td>[HTML 4] %i18n</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">xml</anchor>:lang</code></td><td></td><td></td><td>自然言語</td><td>[XHTML 1]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">language</anchor></code></td><td></td><td></td><td>スクリプト言語</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 4</anchor>+</td></tr><tr><td><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">max</anchor></code></td><td></td><td></td><td>最大ファイル数</td><td>廃止 → <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multiple</anchor></code></td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor></td></tr><tr><td><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">min</anchor></code></td><td></td><td></td><td>最小ファイル数</td><td>廃止</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor></td></tr><tr><td><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multiple</anchor></code></td><td></td><td></td><td>複数ファイル選択</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor></td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">name</anchor></code></td><td></td><td></td><td>制御子名</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onblur</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Script</anchor></code></td><td></td><td>焦点を失した時</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onchange</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Script</anchor></code></td><td></td><td>現在値変更時</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onclick</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">events</anchor></td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ondblclick</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onfocus</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Script</anchor></code></td><td></td><td>焦点を得た時</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onkeydown</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onkeypress</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onkeyup</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onmousedown</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onmousemove</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onmouseout</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onmouseover</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onmouseup</anchor></code></td><td></td><td></td><td></td><td>[HTML 4] %events</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onselect</anchor></code></td><td><code class="SGML">%<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Script</anchor></code></td><td></td><td>文選択時</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">readonly</anchor></code></td><td>(真偽値属性)</td><td>(偽)</td><td>読取専用</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">required</anchor></code></td><td></td><td></td><td>必須</td><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor></td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">style</anchor></code></td><td></td><td></td><td>スタイル情報</td><td>[HTML 4] %coreattrs</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tabindex</anchor></code></td><td><code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NUMBER</anchor></code></td><td></td><td>タブ順</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">title</anchor></code></td><td></td><td></td><td>注釈的題</td><td>[HTML 4] %coreattrs</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">type</anchor></code></td><td><strong><code class="HTML">file</code></strong></td><td><code class="HTML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text</anchor></code></td><td>制御子の種類</td><td>[HTML 4]</td></tr><tr><td><code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code></td><td></td><td></td><td>初期値</td><td>[HTML 4]</td></tr></tbody></table></dd></dl></p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en-US-x-hixie">Web Applications 1.0</cite> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/complete.html#file-upload-state">http://www.whatwg.org/specs/web-apps/current-work/complete.html#file-upload-state</anchor-external></li></ul></refs></section><section><h1>初期値・現在値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UA</anchor> は、 <code class="HTMLa">value</code> 属性の値を初期ファイル名としても構いません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML 4 17.4.1</src></p></section><section><h1>活性化動作</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性化動作</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WA1</anchor> 仕様上規定されていません (<time>2011-09-19T10:44:47.500Z</time>) が、
どの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の選択となっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル選択制御子</anchor>は表示の自由度が低く<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>に嫌われており、
かわりに非表示にして独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>でレンダリングし、 <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">click</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>で選択ウィンドウを表示させる手法が流行しています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MDC</anchor> でも紹介されています。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MDC</anchor> によると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor>4 以降が対応しているようです。<refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><cite xml:lang="en">Using files from web applications - MDN</cite> (<time>2011-09-19 19:39:48 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en/Using_files_from_web_applications#Using_hidden_file_input_elements_using_the_click()_method">https://developer.mozilla.org/en/Using_files_from_web_applications#Using_hidden_file_input_elements_using_the_click()_method</anchor-external></li></ul></refs></comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE8</anchor> も対応していました。いつから対応しているのかはわかりません。</comment-p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> テスト <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://suika.fam.cx/~wakaba/-temp/test/html/form/file/click-1.html">http://suika.fam.cx/~wakaba/-temp/test/html/form/file/click-1.html</anchor-external></li></ul></refs></section><section><h1>ファイル選択</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <strong>ファイル・システム上にないファイル</strong>:
<code class="HTMLe">input</code> <code class="HTMLa">type</code> <code class="HTML">file</code>
によって作られるファイル選択制御子は、
必ずしも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル・システム</anchor>に現在存在するファイルを選択しなければならないのではありません。
賢い利用者エージェントはその場で文書ファイルを作成したり、
絵を描いたり、録音したりする機能を提供しているかもしれません。</p><p>そうはいってもそのことは HTML 4 では明確になっていませんでした。
実際にそのような機能を実装している利用者エージェントがあるのかどうかは不明です。
しかし、 <code class="HTMLe">input</code> <code class="HTMLa">type</code>
を拡張して写真撮影や録音の機能を追加しようという提案
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">device-upload</anchor></src> に対し、 W3C HTML WG
は <code class="HTMLe">input</code> <code class="HTMLa">type</code> <code class="HTML">file</code>
で十分対応できるという結論を下しています。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor> はこの辺りの扱いも幾分明確化しようと試みています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <strong>ファイル・システムに存在しないファイルの名前</strong></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>時の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル名</anchor>は、
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル・システム</anchor>に保存されていない
(その場で作られた) ものであるなどの理由で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル名</anchor>を陽に持たないなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空文字列</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">しなければなりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">WF2 2.15</src></p><section><h1>遠隔ファイルの選択</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>として選択され得るのは手元のファイルだけではありません。
使用している環境さえ対応していれば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネットワーク</anchor>で接続された近くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">計算機</anchor>上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">共有</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>でも選択できるのが普通です。
その他の任意の遠隔<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源</anchor>を選択することも仕様上問題となる点はなく、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal> のように <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(一時ファイルを一旦作成する形ながら)</weak>
既に実装もされています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code> の仕様では
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/external-body</anchor></code> を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">遠隔ファイル</anchor>を参照のままの形で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>できることになっていますが、
それに対応している<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>はありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム処理エージェント</anchor>も対応しているものはおそらくありません。
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code> 以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム提出</anchor>用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>にも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">遠隔ファイル</anchor>のための仕組みは用意されていません。</p></section><section><h1>複数ファイルの選択</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end>
<code class="HTMLe">input</code> <code class="HTMLa">type</code> <code class="HTML">file</code>
によって作られるファイル選択制御子は、
複数のファイルを選択できます。このことは HTML 4
などの仕様上も明確であり、 <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code>
による提出方法も規定されています。</p><p>しかし、実際には複数のファイルを選択できる利用者エージェントがあるのかどうかは不明です。
多くの利用者エージェントは高々1つしか選択できません。
また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム処理エージェント</anchor>もその状況を反映して複数ファイルが提出されることを想定していないものがほとんどと推定されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor> はこの状況と互換性を保ちつつ複数ファイルを選択可能にしようと試みました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> がそれを実装しましたが、この方法は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor>
への統合時に廃止されました。
<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">min</anchor></code>、<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">max</anchor></code>
の項を参照してください。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> では <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multiple</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>が指定されていれば複数ファイルを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>可能であり、
指定されていなければ単一ファイルのみ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>可能とされています。
また、 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code>
による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>も、従来の <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/mixed</anchor></code>
を用いた方法ではなく、直接複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体本体</anchor>として
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code> に含める方法が採られています。
こちらの方がより単純であり、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>にとっても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム処理エージェント</anchor>にとっても処理しやすいと思われます。</p></section><section><h1>提出できないファイル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end>
存在しない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>や何らかの理由で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">うp</anchor>できない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>が指定されている場合、
それらの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>されません。
また、 <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">min</anchor></code>、<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">max</anchor></code>、
<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">required</anchor></code> の検査の際にも、
指定されていないものとして扱われます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>には問題を報告することが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">推奨</strong></anchor>されていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>がこれを知る手段は用意されていません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">WF2 2.15</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>から知ることができないのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">安全性</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">個人情報保護</anchor>の観点から、
どの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>が存在していないかを漏らせるべきではないというのが理由です。</comment-p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section></section><section><h1>提出</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 提出の時の挙動についてはフォームの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>の説明をご覧ください。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <strong>失敗の通知</strong></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、
一般の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>時の失敗と同様に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">うp</anchor>の失敗についても、
便利で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アクセス可能</anchor>な方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に説明<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">するべきです</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">WF2 2.15</src></p></section><section><h1>歴史</h1><section><h1>HTML4</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML 4</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 1.0</anchor>)<ul><li>file select control
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;interact/forms.html#file-select&quot;">IW:HTML4:&quot;interact/forms.html#file-select&quot;</anchor-external></li><li>17.4 The <code class="HTMLe">INPUT</code> element
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;interact/forms.html#edef-INPUT&quot;">IW:HTML4:&quot;interact/forms.html#edef-INPUT&quot;</anchor-external></li><li><cite>B.10.1 Security issues for forms</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="HTML4:&quot;appendix/notes.html#forms-security&quot;">IW:HTML4:&quot;appendix/notes.html#forms-security&quot;</anchor-external></li></ul></li></ul></refs></section><section><h1>WF2</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end>  <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor><ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">2.15. Extensions to file upload controls</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="WF2:&quot;#upload&quot;">IW:WF2:&quot;#upload&quot;</anchor-external></li></ul></li></ul></refs></section></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Navigator 2</anchor> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(2.02 日本語版、 <anchor>Windows 95</anchor> 版で確認)</weak>
では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> 標準の共通対話箱によりファイルを1つ選択できましたが、
ファイルの種類が標準で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張子</anchor>が <code class="file">.html</code>
または <code class="file">.htm</code>) に絞られていたため、
他の種類のファイルを選ぶには毎回手動で<q>すべてのファイル</q>
に絞り直さなければならず、不便でした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <em>File Upload CGIで知らないと困ること</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.tsden.org/ryutaroh/fileupload-j.shtml">http://www.tsden.org/ryutaroh/fileupload-j.shtml</anchor-external></p><p>現在となっては古い内容ですが、
ブラウザのファイル送信機能の実装には色々と問題があったことが分かります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 3</anchor> は標準ではファイル選択制御子に対応していません。
追加のソフトウェア部品として提供されていました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NC4</anchor> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢字コード</anchor>の問題で、非 ASCII
文字を含むファイル名のファイルは選択できても送信できないことがありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <strong>遠隔ファイル</strong>:
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE</anchor> で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Shortcut</anchor> を選択すると、
shortcut ではなく、リンク先 URI の資源を取ってきて、その一時ファイルのファイル名が表示・送信されるようです。</p><p>Internet Shortcut でない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Shortcut</anchor> がリンク先のファイル名に直されるのと同様、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Common Dialog</anchor> control の仕様のようです <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(普通の shortcut のリンク先ににするかどうかは common dialog 呼び出しの option で指定できますから、それと同じ option か、新設の別の option でこの機能を無効化できると思いますが、詳しくは <anchor>MSDN</anchor> でも見て調べてください)</weak>。
WinIE に限らず、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mozilla</anchor> や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモ帳</anchor>などでも再現しますから、 Common Dialog Control に組み込まれた機能とみて間違いないでしょう。</p><p>聞くところによりますと、この機能が実装されているのは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows Me</anchor>
と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows 2000</anchor> 以降の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows NT</anchor> だそうです。
おそらく Common Dialog Control の版に依存しますから、 WinIE の版などにも左右されるかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end>
<cite>file upload</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dog.intcul.tohoku.ac.jp/html/javascript/input_file.html">http://dog.intcul.tohoku.ac.jp/html/javascript/input_file.html</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage])</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end>
<cite>Bug 63687 - UI for &lt;input type=&quot;file&quot;&gt; allowing multiple files to be uploaded</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=63687">https://bugzilla.mozilla.org/show_bug.cgi?id=63687</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ニンテンドー3DS</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターネットブラウザー</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">うp</anchor>すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3D</anchor> で撮影された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写真</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">二次元</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JPEG</anchor> になります。 <code class="file"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.JPG</anchor></code>
の適当なファイル名になるようです。</p></section><section><h1>利用可能性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 選択した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の大きさに比例して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>に時間がかかるはずです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の便宜を図って、
例えば予想転送時間を算出したり、提出中にそのことを分かりやすく利用者に知らせたり工夫するべきです。</p><p>また、大きなファイルを提出させる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に時間がかかることの注意を促すと良いかもしれません。
(但しどちらかといえば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者界面</anchor>の問題に属するものであって、
著者が深く介入するべきでもないでしょう。)</p></section><section><h1>保安性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> ファイル選択制御子を使ってファイルを選択すると、
提出した時のそのファイルが送られることになります。
利用者は、本当に送信しても良いファイルであるのか、
送信しても良い相手なのか、十分に注意するべきです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 特に、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;8</anchor-internal> のように初期ファイル名を指定できるので、
利用者が十分な確認をせずにフォームを提出してしまうと、
意図せずにファイルを送信してしまうこととなり、危険です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> HTML 4 仕様書は、利用者に明確に確認させずに
<abbr>UA<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">利用者エージェント</title></abbr>がファイルを送るべきではなく、
確認を取ることが期待されていると述べています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML 4 B.10.1</src> </p><p><abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor><title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Cascading Style Sheets</title></abbr> などで <code class="HTMLe">input</code>
要素を非表示にすることもできますが、
それによって利用者が気づかぬうちにファイルが送られてしまうことが無いように
<abbr>UA<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">利用者エージェント</title></abbr> 実装者は注意しなければならないでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <abbr>HTML<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Hypertext Markup Language</title></abbr> 
にはデータを転送する方法が用意されていません。
<abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TLS</anchor></abbr> を使うなど別途安全を確保する必要があります。</p><p>また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム処理エージェント</anchor>は<abbr><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">うp</anchor><title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">upload</title></abbr>されたファイルを適切に扱うべきです
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML 4 B.10.1</src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 選択した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の情報を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>から取得・
制御できると便利なこともあるかもしれません。しかし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が知らないうちに勝手な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>を送信したり、
勝手に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の内容や情報を取得したりするために悪用される危険性もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の中には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の体感速度の向上や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>途中の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム・データ</anchor>の保存の目的で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が意図しないうちに選択された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>を
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> によって) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>するものもあります。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Gmail</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付ファイル</anchor>を選択すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が何もしないうちから選択された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付ファイル</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>します。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">form</anchor></code> 要素の <code class="HTMLa"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">enctype</anchor></code>
属性は、 <code class="HTML">file</code> 制御子を使う時には 
<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code> とするべきです
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTML 4 17.3</src>。</p><section><h1>Flash による複数ファイルうp</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 
複数ファイルの同時選択・提出は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor> で明記されている機能であるにも関わらず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Forms 2.0</anchor> を実装するまでどの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザ</anchor>も対応してきませんでした。
そのために、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の中には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Flash</anchor> の機能を使って複数ファイルの同時<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提出</anchor>を実現するものもあります。
(例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">はてなフォトライフ</anchor>。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <cite xml:lang="en">Ajaxian » Multi-file upload in the Flickr and Gmail house</cite> (<time>2009-02-27 16:37:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ajaxian.com/archives/multi-file-upload-in-the-flickr-and-gmail-house">http://ajaxian.com/archives/multi-file-upload-in-the-flickr-and-gmail-house</anchor-external></p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>における <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Flash</anchor> を用いた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイルうp</anchor>の紹介記事です。</p></section></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE 3.02</anchor> の <dfn>file upload add-on</dfn>
で実装されました。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <code class="HTML">type=file</code> なのに親 <code class="HTMLe"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">form</anchor></code> が <code class="HTML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">enctype</anchor>=&quot;<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code>&quot;</code> でない場合の動作ですが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WinIE6</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mozilla</anchor> 1.4, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Opera</anchor> 7.20 で <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-www-form-urlencoded</anchor></code>, <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/plain</anchor></code> (Opera は未対応) ともに、ファイル名が送られました。ファイル名未指定のときには空文字列が送られました。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 面白いことに、ファイル名は、 WinIE は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">完全経路名</anchor>, Opera は完全経路名を <code class="char">&quot;</code> でくくったもの、 Mozilla は狭義の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル名</anchor>でした。 (Opera の <code class="MIME">multipart/form-data</code> との動作の違いに注意。)</li></ul><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> の Opera の挙動はバグですよねぇ。そもそも <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal> の仮定自体が規格外ですから Opera を責めるつもりはまったくないですけど、引用符で囲むことに意味を見出せません。 Opera は既存ブラウザの互換性を幾分考えて設計されているのですから、わざわざ非互換にしたのだとしたら激しく謎です。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end>
<cite xml:lang="ja">Taken SPC : Firefox 3 における &lt;input type=&quot;file&quot;&gt; で指定されたファイルへのアクセス</cite> (<code>2007-09-21 14:32:31 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://taken.s101.xrea.com/blog/article.php?id=809">http://taken.s101.xrea.com/blog/article.php?id=809</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end>
<cite>はてなダイアリー日記 - 「今日の1枚」での http:// や ftp:// で始まるURLの入力について</cite> (<code>2007-09-20 19:01:35 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/hatenadiary/20070919/1190166904">http://d.hatena.ne.jp/hatenadiary/20070919/1190166904</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end>
<cite>input type=&quot;file&quot; value inconsistencies</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Daniel Veditz &lt;dveditz@...&gt;</anchor> 著, <code>2007-11-14 07:57:22 +09:00</code> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/12396">http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/12396</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end>
<cite>Bug 143220 &amp;#8211; <strong>[</strong>FIX<strong>]</strong>Script can get the value of a file control, including the path</cite> (<time>2007-12-01 11:45:05 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=143220">https://bugzilla.mozilla.org/show_bug.cgi?id=143220</anchor-external>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite xml:lang="ja">ケータイからファイルアップロード 質問と回答(Q&amp;A) <strong>[</strong>okyuu.com<strong>]</strong></cite>
(<time>2010-03-21 23:31:57 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://okyuu.com/ja/question/7534">http://okyuu.com/ja/question/7534</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">au</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">W52CA</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>では、 <code class="HTML" xml:lang="en">&lt;input type=file&gt;</code> は <code class="HTML" xml:lang="en">&lt;input type=text&gt;&lt;input type=button value=Browse...&gt;</code> のように解釈されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="en">HTML5 Revision Tracker</cite>
(<time>2010-07-29 07:16:03 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=5214&amp;to=5215">http://html5.org/tools/web-apps-tracker?from=5214&amp;to=5215</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite><strong>[</strong>whatwg<strong>]</strong> Directory upload via &lt;input type=&quot;file&quot; directory&gt;</cite>
(<time>2010-07-29 07:32:34 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027401.html">http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027401.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite xml:lang="en">HTML Media Capture</cite>
( (<time>2010-09-24 02:07:21 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2010/WD-html-media-capture-20100928/">http://www.w3.org/TR/2010/WD-html-media-capture-20100928/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="ja">ハードウェアが特定の条件下ではIEでfilter:alpha(opacity=N)が適用されない - blog.katsuma.tv</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">blog.katsuma.tv</anchor> 著, <time>2011-03-07 12:39:57 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://blog.katsuma.tv/2011/03/ie_filter_hardware_problem.html">http://blog.katsuma.tv/2011/03/ie_filter_hardware_problem.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">Opera: Opera 11.00 for Windows changelog</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Frank M. Palinkas, Technical Writer, Opera Software ASA</anchor> 著, <time>2011-04-24 11:17:12 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.opera.com/docs/changelogs/windows/1100/">http://www.opera.com/docs/changelogs/windows/1100/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7275     The 'name' of an &lt;input type=file&gt; field has to get newline-normalised. Also, some editorial tweaks.</cite>
( (<time>2012-08-26 12:04:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7274&amp;to=7275">http://html5.org/tools/web-apps-tracker?from=7274&amp;to=7275</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7578     Seems nobody implemented the path thing, so let's not leave it in.</cite>
( (<time>2012-12-11 05:24:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7577&amp;to=7578">http://html5.org/tools/web-apps-tracker?from=7577&amp;to=7578</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> Proposal: API to ask the user for a file</cite>
( (<time>2013-08-30 09:02:48 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040642.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040642.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> Forms: &lt;input type=file&gt; and directory tree picking</cite>
( (<time>2013-08-30 06:09:44 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040645.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040645.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8155     &lt;input type=file&gt;.click() wasn't defined</cite>
( (<time>2013-08-30 04:53:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8154&amp;to=8155">http://html5.org/tools/web-apps-tracker?from=8154&amp;to=8155</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <cite xml:lang="en">Bug 23497 – Mechanism for allowing cloud storage providers to hook into type=file</cite>
( (<time>2013-10-14 22:52:04 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=23497">https://www.w3.org/Bugs/Public/show_bug.cgi?id=23497</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <cite xml:lang="en">Bug 22682 – Make &lt;input type=file&gt;.files writable</cite>
( (<time>2013-10-14 22:53:06 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=22682">https://www.w3.org/Bugs/Public/show_bug.cgi?id=22682</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> Forms-related feedback</cite>
( (<time>2013-12-03 20:56:46 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-December/041681.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-December/041681.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite>
( (<time>2014-01-09 07:29:06 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#file-upload-state-(type=file)">http://www.whatwg.org/specs/web-apps/current-work/#file-upload-state-(type=file)</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8367     Revamp 'input' and 'change' event logic for &lt;input&gt; elements. The primary goal here is to make 'input' events fire on type=checkbox, type=radio, and type=file, but this also improves the way other things here are phrased.</cite>
( (<time>2013-12-19 09:03:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8366&amp;to=8367">http://html5.org/tools/web-apps-tracker?from=8366&amp;to=8367</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <cite xml:lang="en">Re: File upload from a Web browser from Larry Masinter on 1995-07-13 (stdin)</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Larry Masinter (masinter_at_parc.xerox.com)</anchor> 著, <time>2012-12-27 02:33:20 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://inkdroid.org/tmp/www-talk/9375.html">http://inkdroid.org/tmp/www-talk/9375.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite xml:lang="en">File upload in HTML forms from Ernesto Nebel on 1994-09-23 (stdin)</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ernesto Nebel (nebel_at_xsoft.sd.xerox.com)</anchor> 著, <time>2012-12-27 02:33:18 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://inkdroid.org/tmp/www-talk/6740.html">http://inkdroid.org/tmp/www-talk/6740.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <cite>Welcome to Netscape Navigator Version 2.0</cite>
( (<time>2014-04-07 08:48:41 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://web.archive.org/web/20030202175634/http://wp.netscape.com/eng/mozilla/2.0/relnotes/windows-2.0.html#Images">http://web.archive.org/web/20030202175634/http://wp.netscape.com/eng/mozilla/2.0/relnotes/windows-2.0.html#Images</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Clear internal value when &lt;input&gt; changes to type=&quot;file&quot; state · whatwg/html@a55d6e6</cite>
(<time>2015-09-17 14:36:46 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/a55d6e6b5e78c62fa8b3a78e818f8b2323536f8f">https://github.com/whatwg/html/commit/a55d6e6b5e78c62fa8b3a78e818f8b2323536f8f</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor>11 では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書中</anchor>にない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>で <code class="DOMm" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">click</anchor></code>
してもダイアログは表示されません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> では表示されます。
<time>2015-09-29T09:18:17.900Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite>File and Directory Upload in Chrome - Google ドキュメント</cite>
( (<time>2016-05-13 09:09:10 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.google.com/document/d/14fCaoRf5GtdhMwJOVjcQSMDm_varTluyMq8RYyHR8vw/edit?pref=2&amp;pli=1">https://docs.google.com/document/d/14fCaoRf5GtdhMwJOVjcQSMDm_varTluyMq8RYyHR8vw/edit?pref=2&amp;pli=1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en">Changes to DOM - NW.js Documentation</cite>
(<time>2017-03-15 15:09:12 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://docs.nwjs.io/en/latest/References/Changes%20to%20DOM/">http://docs.nwjs.io/en/latest/References/Changes%20to%20DOM/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="en">Make &lt;input type=file&gt;.files settable</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-08-02 21:53:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/5dc7db2108656c9ce4b2dc7a8bb7dcde5c03afee">https://github.com/whatwg/html/commit/5dc7db2108656c9ce4b2dc7a8bb7dcde5c03afee</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Editorial: no more &quot;return, but continue&quot; for &lt;input type=file&gt;</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2018-01-24 00:21:18 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/b2fc1c1d49ad5701b4bdcf80dcee115c3167005e">https://github.com/whatwg/html/commit/b2fc1c1d49ad5701b4bdcf80dcee115c3167005e</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">Editorial: no more &quot;return, but continue&quot; for &lt;input type=file&gt; by annevk · Pull Request #3388 · whatwg/html</cite>
(<time>2018-01-25 13:03:43 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/pull/3388">https://github.com/whatwg/html/pull/3388</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite>New WebKit Features in Safari 11.1 | WebKit</cite>
(<time>2018-04-13 13:40:37 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://webkit.org/blog/8216/new-webkit-features-in-safari-11-1/">https://webkit.org/blog/8216/new-webkit-features-in-safari-11-1/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite xml:lang="en">element send keys: &lt;input type=file&gt; also has to fire change event (#…</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">whimboo</anchor>著, <time>2018-05-31 01:31:23 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/036194529785018eaf385bab1a129387539cbbb5">https://github.com/w3c/webdriver/commit/036194529785018eaf385bab1a129387539cbbb5</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite xml:lang="en">Element Send Keys for &quot;&lt;input type=file&gt;&quot; has to also send a change event. by whimboo · Pull Request #1262 · w3c/webdriver</cite>
(<time>2018-06-04 16:30:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/pull/1262">https://github.com/w3c/webdriver/pull/1262</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <cite>HTMLのinputタグ<strong>[</strong>type=file<strong>]</strong>のブラウザごとの挙動について調べてみた - Qiita</cite>
(<time>2019-01-09 10:24:27 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/taqm/items/4d31d88befb36f46714f">https://qiita.com/taqm/items/4d31d88befb36f46714f</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <cite xml:lang="en">Revamp the user activation model</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mustaqahmed</anchor>, <time>2019-12-05 04:09:23 +09:00</time>, <time>2022-01-19T09:25:35.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/8f8c1f50158736b3cf16188377a0974a20367c8b">https://github.com/whatwg/html/commit/8f8c1f50158736b3cf16188377a0974a20367c8b</anchor-external></p></section></body></html>