2013-10-29 101 views
0

上傳文件之前,默認的jquery-file-upload函數沒有任何驗證。上傳前驗證文件類型

我想限制上傳到只有一個pdf文件。

我在js文件夾中發現了jquery.fileupload-validate.js文件,但是我不知道如何修改這個文件。

請幫幫我。 我在jquery-file-upload $.blueimp.fileupload.prototype.options.processQueue.push( { action: 'validate', // Always trigger this action, // even if the previous action was rejected: always: true, // Options taken from the global options map: acceptFileTypes: '@', maxFileSize: '@', minFileSize: '@', maxNumberOfFiles: '@', disabled: '@disableValidation' } 中發現了這行,但我不知道如何改變它。

+0

確保在服務器端驗證文件的安全性 - 惡意用戶很容易繞過客戶端檢查。 – joews

+0

如果檢查擴展名是不夠的,使用[HTML5 FileReader](https://developer.mozilla.org/en-US/docs/Web/API/FileReader)也可能有幫助。 –

+0

我驗證服務器端的文件類型,但我想驗證客戶端的文件類型。 – user180999

回答

1

在您驗證表單或僅文件上傳使用像

您的js文件
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> 
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script> 

jQuery.validator.setDefaults({ 
    debug: true, 
    success: "valid" 
    }); 
    $("#form").validate({ 
    rules: 
     'image': { 
     required: true 
     accept: "application/pdf" 
     } 
    }, 
    messages: { 
     "image": { 
     required: "Please upload only pdf files." 
     } 
    }, 
    submitHandler: function(form) { 
    form.submit(); 
    } 
    }); 
}); 
+0

我在jquery-file-upload中找到了這幾行'$ .blueimp.fileupload.prototype.options.processQueue.push( { 行動:「驗證」, //始終觸發這個動作, //即使之前的動作被拒絕: 總是: acceptFileTypes:從全球地圖選項中獲取真實, //選項「@」 , maxFileSize爲: '@', minFileSize: '@', maxNumberOfFiles: '@', 禁用: '@disableValidation' }' 但我不知道如何 更改。 – user180999

+0

你不需要更改yourblueimp JavaScript文件中的nay代碼..只需將驗證放在哪裏調用您的文件上傳功能 – LHH

+0

檢查此鏈接獲取更多信息http://forum.jquery.com/topic/jquery-beginner-using- blueimp,文件上傳,插件 – LHH