次の設定で、pluploadをASP.NETMVC3アプリケーションと統合しています。
var uploaderSettings = {
runtimes: "html5,silverlight,flash,html4",
browse_button: "browse-button",
container: "upload-ui",
drop_element: "drag-drop-area",
file_data_name: "file",
multiple_queues: true,
max_file_size: "10mb",
url: '@Url.Action("Index", "Upload")',
flash_swf_url: '@Url.Content("~/js/plupload/plupload.flash.swf")',
silverlight_xap_url: '@Url.Content("~/js/plupload.silverlight.xap")',
filters: [
{title: "Excel Files", extensions: "xls,xslx,csv"}
],
multipart: true,
urlstream_upload: true,
dragdrop: true,
multipart_params: {
token: "@AuthToken()"
}
};
pluploadは、属性(コンマ区切り)<input type="file">
に次の項目を含むを生成しています。accept
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
text/csv
Firefox 12.0では、フィルターを無視し、任意のファイルタイプを選択できます。
Chrome 21では、上記のファイル拡張子では機能しませんが、フィルターを画像ファイル(jpg、png、gif)に変更すると、[ファイルの選択]ダイアログが正しくフィルターされます。
この問題はChromiumバグトラッカーで見つかりました。これは関連しているようですが、2010年10月に修正済みとしてマークされました。
ランタイムの優先度をhtml5より上のsilverlightまたはflashに切り替えると、正しく機能しますが、ドラッグアンドドロップファイルのアップロード機能が失われるため、これは行いません。
これは単にaccept属性に対するブラウザのサポートの制限ですか、何か間違ったことをしているのですか、それともpluploadのバグですか?
更新:これは既知の問題であるように思われ、mimeタイプのフィルタリングに対するブラウザのサポートに要約されます。