js 图片不保存的回显功能/图片尺寸验证/图片大小验证 /图片类型验证

大部分转自:http://blog.csdn.net/qq_39200924/article/details/79198766

在项目中经常用到input标签来上传文件,而这些文件通常是图片文件。图片有很多格式我们只需要其中的几种,就需要对用户上传的文件进行验证,在HTML5中有一个新的属性:accept文件类型限制。但是通常我们会用javascript或jQuery编写方法进行验证图片的大小限制、类型判断、像素判断。

[html] view plain copy
 
  1. <input type="file" name="files" id="file" onchange="verificationPicFile(this)"accept="image/*">  
  2. 类型验证accept的属性设置为image/*,就只可以选择图片类型更方便,若是有其他更局限要求,用下面的方法
[javascript] view plain copy
 
  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. }  
[javascript] view plain copy
 
  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. }  
[javascript] view plain copy
 
  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. }  

4、图片不保存的回显功能。

html:

<div class="form-horizontal-input">
<span class="Validform-info">广告图片</span>
<p class="show_img">
<img src="" data-toggle="modal" href="#lookImg" style=" 200px;"> //他来保存图片url,来回显的容器
</p>
<p>
<div class="upload">
<label class="btn btn-info btn-block">
<span>上传广告图片</span>
<input class="hidden" type="file" id="show_img" accept="image/*"> //放图片文件的容器
<input type="hidden" id="file_path">
<input type="hidden" id="file_url">
</label>
</div>
</p>
<div class="remarks-Adver">
<p>注:</p>
<p>1.轮播广告图长宽比建议5:2</p>
<p>2.固定/默认广告图长宽比建议10:7</p>
</div>
</div>

js:
function uploadFile(id,classd) {
var file_name = window.URL.createObjectURL(document.getElementById(id).files[0]);  //id为上面的show_img
$(classd).find('img').attr('src',file_name);  //classed为放图片url的容器。
}

原文地址:https://www.cnblogs.com/daguozb/p/8579294.html