是沒有什麼辦法,HTML元素文件如何讓HTML的「文件」類型的輸入元素只接受pdf文件?
<input name="file1" type="file" style="width:300px">
只接受PDF文件,當我們瀏覽其只顯示PDF文件...
感謝
是沒有什麼辦法,HTML元素文件如何讓HTML的「文件」類型的輸入元素只接受pdf文件?
<input name="file1" type="file" style="width:300px">
只接受PDF文件,當我們瀏覽其只顯示PDF文件...
感謝
不與HTML文件控制,沒有。 Flash文件上傳器可以爲你做到這一點。您可以使用一些客戶端代碼在選擇後檢查PDF擴展名,但不能直接控制它們可以選擇的內容。
不可以,但你可以檢查出SWFUpload和Ajax Upload
沒有辦法做到這一點以外的驗證與JavaScript文件擴展名,當輸入路徑由文件選擇填充。爲了實現更好的效果,你需要爲你想要的任何瀏覽器編寫你自己的組件(activeX或者XUL)
HTML4.01中有一個「accept」屬性,但我不知道任何支持它的瀏覽器 - accept="image/gif,image/jpeg
- 所以它是一個整潔,但不切實際的規範
+1。此外,Chrome現在支持這一點。我讀到Opera已經支持了很長時間,但我沒有檢查它。 – ANeves 2011-11-04 14:02:02
它可能是有用的,以防止分心的用戶做出不由自主的不好的選擇,但無論如何,你必須在服務器端進行檢查。
最好的方法是在上傳頁面中清楚。之後,如果用戶愚蠢地上傳錯誤類型的大文件,那是他們的時間損失,不是嗎?
要獲取HTML file
輸入表單元素只接受PDF文件,可以使用在現代瀏覽器如Firefox 9+,鉻16 +,11 +歌劇和IE10 +像這樣的accept
屬性:
<input name="file1" type="file" accept="application/pdf" />
您可以用逗號將多個MIME類型串在一起。
以下字符串將接受JPG,PNG,GIF,PDF,以及EPS文件:
<input name="foo" type="file" accept="image/jpeg,image/gif,image/png,application/pdf,image/x-eps" />
舊版瀏覽器的原生操作系統文件對話框不能限制 - 你必須使用Flash或一個Java applet或類似的東西來處理文件傳輸。
當然不用說,這沒有做任何事情來驗證文件類型的有效性。一旦文件上傳,您就可以在服務器端執行此操作。
一個小更新 - 使用JavaScript和FileReader API你可以上傳大文件到您的服務器,並再次檢查他們之前做更多的驗證客戶端。
以前的海報犯了一個小錯誤。 accept屬性只是一個顯示過濾器。在提交之前,它不會驗證您的輸入。
此屬性強制文件對話框僅顯示所需的MIME類型。 但用戶可以覆蓋該過濾器。他可以選擇。並查看當前目錄中的所有文件。通過這樣做,他可以選擇任何具有任何擴展名的文件,並提交表單。
因此,要回答原始海報,NO。您不能通過使用HTML將輸入文件限制爲一個特定的擴展名。
但是您可以使用javascript來測試在提交之前選擇的文件名。只需在您的提交按鈕上插入一個onclick屬性並調用將測試輸入文件值的代碼即可。如果擴展名被禁止,您必須返回false才能使表單無效。您甚至可以使用jQuery自定義驗證程序等來驗證表單。
最後,您還必須在服務器端測試擴展。 關於允許的最大文件大小的相同問題。
+0。如果你反而說「是的,但不是真的」,我會同意。特別是現在Chrome支持它,我認爲Opera也可能。 – ANeves 2011-11-04 14:04:46