2012-05-07 196 views
3

我在這裏遇到了一個奇怪的問題。 (要麼,我只是忽視的東西太簡單。)HTML文件格式,接受Word文檔

我有一個文件上傳表單,我希望它只能接受某些類型的文件當中哪個MS Word文檔。我添加了doc和docx MIME類型(application/mswordapplication/vnd.openxmlformats-officedocument.wordprocessingml.document分別)到文件輸入字段的接受屬性,但是當我點擊「選擇文件」中,doc和docx文件仍然灰色的爲不可上傳。

那麼,我錯過了什麼?任何幫助或指針將不勝感激!

(是的,我知道的形式,檢查是不是過濾上傳文件的一個好辦法。我有PHP涵蓋的是,這更是爲用戶方便的,這樣他們就不會去上傳文件不允許)

回答

0

我的MIME類型可能不與瀏覽器註冊的Word文件,這樣Word文件被報告爲application/octet-stream的。通常,HTML格式的MIME類型過濾不能可靠地工作,除了常見的圖像MIME類型。

您可以創建JavaScript解決方案來檢查文件的擴展名。在accept屬性的

+0

我知道它並不支持Safari和IE,但很高興知道MIME類型的識別也可能因瀏覽器而異。那麼我會把它踢出去。 JavaScript解決方案可能是一個更好的主意。 謝謝! – Fang

4

支持一直不好,但慢慢變得越來越普遍。在我的Google Chrome 19上,元素<input type="file" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword" />可以運行,因此選擇僅限於.doc和.docx文件。其他瀏覽器通常忽略這樣的accept屬性,但例如, Firefox支持一些簡單的案例,如accept="image/gif"

除此之外,瀏覽器可以映射MIME類型的文件擴展名(通常是什麼文件系統當作「文件類型」的指標),以不同的方式。因此,儘管屬性可能在某些情況下起作用,但當映射不同時它可能會使事情變得更糟。