我正在将 plupload 与我的 ASP.NET MVC3 应用程序集成,具有以下设置:
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 月被标记为已修复。
如果我将运行时优先级切换为 silverlight 或 flash 高于 html5,它可以正常工作,但我宁愿不这样做,因为我失去了拖放文件上传功能。
这仅仅是浏览器对accept属性的支持限制,我做错了什么,还是plupload中的一个错误?
更新:这似乎是一个已知问题,归结为浏览器对 mime 类型过滤的支持。