Home  >  Article  >  Web Front-end  >  Use file tag to implement multi-image file upload preview

Use file tag to implement multi-image file upload preview

高洛峰
高洛峰Original
2017-02-17 17:03:201628browse

js code:


##

<script> 
 //下面用于多图片上传预览功能
 function setImagePreviews(avalue) {
 var docObj = document.getElementById("files");
 var dd = document.getElementById("preview");
 dd.innerHTML = "";
 var fileList = docObj.files;
 for (var i = 0; i < fileList.length; i++) {
  dd.innerHTML += "<p style=&#39;float:left&#39; > <img id=&#39;img" + i + "&#39; /> </p>";
  var imgObjPreview = document.getElementById("img"+i);
  if (docObj.files && docObj.files[i]) {
  //火狐下,直接设img属性
  imgObjPreview.style.display = &#39;block&#39;;
  //控制缩略图大小
  imgObjPreview.style.width = &#39;70px&#39;;
  imgObjPreview.style.height = &#39;70px&#39;;
  //imgObjPreview.src = docObj.files[0].getAsDataURL();
  //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
  imgObjPreview.src = window.URL.createObjectURL(docObj.files[i]);
  }
  else {
  //IE下,使用滤镜
  docObj.select();
  var imgSrc = document.selection.createRange().text;
  alert(imgSrc)
  var localImagId = document.getElementById("img" + i);
  //必须设置初始大小
  localImagId.style.width = "70px";
  localImagId.style.height = "70px";
  //图片异常的捕捉,防止用户修改后缀来伪造图片
  try {
   localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
   localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
  }
  catch (e) {
   alert("您上传的图片格式不正确,请重新选择!");
   return false;
  }
  imgObjPreview.style.display = &#39;none&#39;;
  document.selection.empty();
  }
 }
 return true;
 }
 </script>


##HTML code:

<form method="post" enctype="multipart/form-data">  
  <input type="file" accept="image/png,image/gif,image/jpg,image/jpeg" id="files" name="files" multiple onchange="javascript:setImagePreviews();" />
  <input type="button" id="upload" value="上传" />
  <p id="preview">  
  </p> 
</form>

For more related articles using the file tag to implement multi-image file upload preview, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn