首页 > 语言 > JavaScript > 正文

上传图片预览JS脚本 Input file图片预览的实现示例

2024-05-06 16:10:04
字体:
来源:转载
供稿:网友

需要一个用户上传头像预览的功能,因此写了一段上传图片预览JS脚本,Input file图片预览的实现,需要的朋友可以看看

在深圳做项目的时候,需要一个用户上传头像预览的功能!是在网上找了好多,都不太满意。要么是flash的,要么是Ajax上传后返回图片路径的,要么压根就是不能用的。幸运的是在这个项目以前有人写过一个图片预览的功能,还被我给翻了出来,在这里做个记录,方便自己以后用,也方便其他需要的朋友!

代码很简单,如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>By:DragonDean</title> 
  6. <script type="text/javascript"
  7. //下面用于图片上传预览功能 
  8. function setImagePreview(avalue) { 
  9. var docObj=document.getElementById("doc"); 
  10.  
  11. var imgObjPreview=document.getElementById("preview"); 
  12. if(docObj.files &&docObj.files[0]) 
  13. //火狐下,直接设img属性 
  14. imgObjPreview.style.display = 'block'
  15. imgObjPreview.style.width = '150px'
  16. imgObjPreview.style.height = '180px';  
  17. //imgObjPreview.src = docObj.files[0].getAsDataURL(); 
  18.  
  19. //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式 
  20. imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]); 
  21. else 
  22. //IE下,使用滤镜 
  23. docObj.select(); 
  24. var imgSrc = document.selection.createRange().text; 
  25. var localImagId = document.getElementById("localImag"); 
  26. //必须设置初始大小 
  27. localImagId.style.width = "150px"
  28. localImagId.style.height = "180px"
  29. //图片异常的捕捉,防止用户修改后缀来伪造图片 
  30. try
  31. localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"
  32. localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; 
  33. catch(e) 
  34. alert("您上传的图片格式不正确,请重新选择!"); 
  35. return false
  36. imgObjPreview.style.display = 'none'
  37. document.selection.empty(); 
  38. return true
  39.  
  40. </script> 
  41. </head> 
  42.  
  43. <body> 
  44. <table width="100%" border="0" cellspacing="0" cellpadding="0"
  45. <tbody> 
  46. <tr> 
  47. <td height="101" align="center"
  48. <div id="localImag"><img id="preview" src="http://blog.chuangling.net/Public/images/top.jpg" width="150" height="180" style="display: block; width: 150px; height: 180px;"></div> 
  49. </td> 
  50. </tr> 
  51. <tr> 
  52. <td align="center" style="padding-top:10px;"><input type="file" name="file" id="doc" style="width:150px;" onchange="javascript:setImagePreview();"></td> 
  53. </tr> 
  54. </tbody> 
  55. </table> 
  56. </body> 
  57. </html> 

测试在IE8,FF12.0和谷歌chrome 28.0.1500.72都能用!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选