上傳圖片限制大小、類型判斷、像素判斷


在項目中經常用到input標簽來上傳文件,而這些文件通常是圖片文件。圖片有很多格式我們只需要其中的幾種,就需要對用戶上傳的文件進行驗證,在HTML5中有一個新的屬性:accept文件類型限制。但是通常我們會用javascript或jQuery編寫方法進行驗證圖片的大小限制、類型判斷、像素判斷。

1 <input type="file" name="files" id="file" onchange="verificationPicFile(this)">
 1 //圖片類型驗證
 2 function verificationPicFile(file) {
 3     var fileTypes = [".jpg", ".png"];
 4     var filePath = file.value;
 5     //當括號里面的值為0、空字符、false 、null 、undefined的時候就相當於false
 6     if(filePath){
 7         var isNext = false;
 8         var fileEnd = filePath.substring(filePath.indexOf("."));
 9         for (var i = 0; i < fileTypes.length; i++) {
10             if (fileTypes[i] == fileEnd) {
11                 isNext = true;
12                 break;
13             }
14         }
15         if (!isNext){
16             alert('不接受此文件類型');
17             file.value = "";
18             return false;
19         }
20     }else {
21         return false;
22     }
23 }
 1 //圖片大小驗證
 2 function verificationPicFile(file) {
 3     var fileSize = 0;
 4     var fileMaxSize = 1024;//1M
 5     var filePath = file.value;
 6     if(filePath){
 7         fileSize =file.files[0].size;
 8         var size = fileSize / 1024;
 9         if (size > fileMaxSize) {
10             alert("文件大小不能大於1M!");
11             file.value = "";
12             return false;
13         }else if (size <= 0) {
14             alert("文件大小不能為0M!");
15             file.value = "";
16             return false;
17         }
18     }else{
19         return false;
20     }
21 }
 1 //圖片尺寸驗證
 2 function verificationPicFile(file) {
 3     var filePath = file.value;
 4     if(filePath){
 5         //讀取圖片數據
 6         var filePic = file.files[0];
 7         var reader = new FileReader();
 8         reader.onload = function (e) {
 9             var data = e.target.result;
10             //加載圖片獲取圖片真實寬度和高度
11             var image = new Image();
12             image.onload=function(){
13                 var width = image.width;
14                 var height = image.height;
15                 if (width == 720 | height == 1280){
16                     alert("文件尺寸符合!");
17                 }else {
18                     alert("文件尺寸應為:720*1280!");
19                     file.value = "";
20                     return false;
21                 }
22             };
23             image.src= data;
24         };
25         reader.readAsDataURL(filePic);
26     }else{
27         return false;
28     }
29 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM