我使用jQuery-File-Upload與rails 3,它工作得很好。但是我沒有發現如何在客戶端驗證上傳文件的擴展名或內容類型。jQuery-File-Upload內容類型/擴展驗證
有沒有辦法做到這一點?
因爲我會反過來在server-sid上用Paperclip來驗證它,但我認爲最好在客戶端驗證一次。
我使用jQuery-File-Upload與rails 3,它工作得很好。但是我沒有發現如何在客戶端驗證上傳文件的擴展名或內容類型。jQuery-File-Upload內容類型/擴展驗證
有沒有辦法做到這一點?
因爲我會反過來在server-sid上用Paperclip來驗證它,但我認爲最好在客戶端驗證一次。
acceptFileTypes
爲允許的文件類型的正則表達式,對任一文件類型或文件名只與文件API報告的文件類型支持瀏覽器相匹配。
Type: Regular Expression
Example: /(\.|\/)(gif|jpe?g|png)$/i
問題牽連,你(相對多數)實現,當你發現的只是進一步擴展的是,你沒有檢查MIME類型。
在HTML5中,你可以使用接受屬性:(?commaseperated)
<input type="file" accept="video/*" />
您可以使用多個值。但是規範說空間分離,但實際上我只看到逗號分隔的值。 注意:在支持HTML5的瀏覽器中添加更多驗證是多餘的。
但如果涉及到其他用途(如拖/放文件上傳)你的問題,那麼你可以使用JavaScript jQuery中代替:
if(!(file.type.indexOf('video/') == 0)) {
alert('nope');
return false;
}
不用說的是,你還應該驗證上服務器端。