2012-05-29 80 views
3

我整合plupload與我的ASP.NET MVC3的應用程序,具有以下設置:如何過濾plupload的HTML5運行時中的文件類型?

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是生成這樣的accept屬性下列項目的<input type="file">(逗號分隔):

  • application/vnd.ms-excel
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • text/csv

在Firefox 12.0,它忽略了過濾器,並允許任何文件類型的選擇。

在Chrome瀏覽器21,它不與所提到的文件擴展名的工作,但如果我更改了過濾器,以圖像文件(JPG,PNG,GIF),它過濾選擇文件正確對話框。

我發現了鉻的bug跟蹤系統,這似乎與this issue,但被標記爲固定早在2010年10月

如果我切換運行時優先考慮的Silverlight或Flash以上HTML5,它工作正常,但我寧願不這樣做,因爲我失去了拖放文件上傳功能。

難道這簡直就是爲接受屬性的瀏覽器支持的限制,我是不是做錯了什麼,或者是在plupload的錯誤嗎?

UPDATE:看來這是一個known issue,並歸結爲對MIME類型的過濾瀏覽器支持。

+0

接受不是HTML5 http://www.w3schools.com/tags/att_input_accept.asp所以會認爲它應該有更廣泛的支持! –

+0

的確,從HTML2開始就已經存在 - 但是,HTML5的許多功能都是如此。 HTML5更多的是隨機瀏覽器特定功能的標準化。 –

回答

4

聽起來像這不是驗證文件類型的好方法。

accept attribute in input file is not working

這只是用於提示操作系統在對話框中篩選的文件類型。

當我做這個用PL上傳,我這樣做是基於擴展服務器端。

0
filters: { 
      max_file_size: '100mb', 
      prevent_duplicates: true, 
      **mime_types:** [title : "Image files", extensions : "jpg,jpeg,gif,png"] 
     } 
+0

雖然這個代碼塊可能會回答這個問題,但如果您可以爲此提供一些解釋,這將是一個更好的答案。 – DavidPostill

相關問題