在項目中經常用到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 }