私のページにはファイルアップロードオブジェクトがあります:
<input type="file" ID="fileSelect" />
デスクトップに次の Excel ファイルがあります:
- ファイル1.xlsx
- ファイル1.xls
- ファイル.csv
ファイルのアップロードで、、およびファイルのみが表示されるようにしたいです。.xlsx
.xls
.csv
属性を使用するとaccept
、これらのコンテンツ タイプが拡張機能を処理することがわかりまし.xlsx
た.xls
...
accept
= アプリケーション/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= アプリケーション/vnd.ms-excel (.XLS)
しかし、Excel CSV ファイルの正しいコンテンツ タイプが見つかりません。何か提案はありますか?
ベストアンサー1
まあ、これは恥ずかしいことですが... 探していた解決策を見つけましたが、これ以上簡単なものはありません。次のコードを使用して、目的の結果を得ました。
<label for="fileSelect">Spreadsheet</label>
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
有効な受け入れタイプ:
CSVファイル (.csv)の場合は、以下を使用します。
<input type="file" accept=".csv" />
Excel ファイル 97-2003 (.xls)の場合は、次を使用します。
<input type="file" accept="application/vnd.ms-excel" />
Excel ファイル 2007+ (.xlsx)の場合は、次を使用します。
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
テキスト ファイル(.txt)の場合は以下を使用します。
<input type="file" accept="text/plain" />
画像ファイル(.png/.jpg など)の場合は、以下を使用します。
<input type="file" accept="image/*" />
HTML ファイル(.htm、.html)の場合は、次を使用します。
<input type="file" accept="text/html" />
ビデオ ファイル(.avi、.mpg、.mpeg、.mp4)の場合は、次を使用します。
<input type="file" accept="video/*" />
オーディオ ファイル(.mp3、.wav など)の場合は、次を使用します。
<input type="file" accept="audio/*" />
PDF ファイルの場合は、以下を使用します。
<input type="file" accept=".pdf" />
デモ:
http://jsfiddle.net/dirtyd77/LzLcZ/144/
注記:
.csv
Excel CSV ファイル ( )を表示する場合は、以下を使用しないでください。
text/csv
application/csv
text/comma-separated-values
( Opera でのみ動作します)。
特定のファイル タイプ(たとえば、WAV
または)を表示しようとしている場合PDF
、これはほぼ常に機能します...
<input type="file" accept=".FILETYPE" />
その理由は次のとおりです。
タイプapplication
は多くの場合、ファイルを開く場所を意味します。たとえば、Abode Reader などです。ただし、このファイルがアップロードされると、ブラウザーはファイルを開いてそのアプリに問い合わせることはありません。ただし、拡張子や MIME などのタイプ ワードは、image
ファイルaudio
ユニットに直接適用されます。
これらは DOM インスタンスに関連して使用できますFile
。したがって、拡張子の形式名を使用する必要があります。モバイルなどの多くのデバイスでは、[ファイルの選択] をクリックすると、ユーザー メニューで受け入れられないファイルが灰色で除外されていることがわかります... ファイルで楽しい時間を過ごしてください。