读取input:file的路径并显示本地图片的方法


Posted in Javascript onSeptember 23, 2013
<!doctype html> 
<html> 
<head> 
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> 
<title>Image preview example</title> 
<script type="text/javascript"> 
var loadImageFile = (function () { 
if (window.FileReader) { 
var oPreviewImg = null, oFReader = new window.FileReader(), 
rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i; oFReader.onload = function (oFREvent) { 
if (!oPreviewImg) { 
var newPreview = document.getElementById("imagePreview"); 
oPreviewImg = new Image(); 
oPreviewImg.style.width = (newPreview.offsetWidth).toString() + "px"; 
oPreviewImg.style.height = (newPreview.offsetHeight).toString() + "px"; 
newPreview.appendChild(oPreviewImg); 
} 
oPreviewImg.src = oFREvent.target.result; 
}; 
return function () { 
var aFiles = document.getElementById("imageInput").files; 
if (aFiles.length === 0) { return; } 
if (!rFilter.test(aFiles[0].type)) { alert("You must select a valid image file!"); return; } 
oFReader.readAsDataURL(aFiles[0]); 
} 
} 
if (navigator.appName === "Microsoft Internet Explorer") { 
return function () { 
alert(document.getElementById("imageInput").value); 
document.getElementById("imagePreview").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = document.getElementById("imageInput").value; 
} 
} 
})(); 
</script> 
<style type="text/css"> 
#imagePreview { 
width: 160px; 
height: 120px; 
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale); 
} 
</style> 
</head> 
<body> 
<div id="imagePreview"> 
</div> 
<form name="uploadForm"> 
<p> 
<input id="imageInput" type="file" name="myPhoto" onchange="loadImageFile();" /><br /> 
<input type="submit" value="Send" /></p> 
</form> 
</body> 
</html>

但是需要注意的是 在IE8中 由于IE8自作聪明的将真实路径隐藏起来了 用alert打印的结果是C:/fakepath/*.jpg 所以导致该方法无法使用

解决办法是:进入工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。

Javascript 相关文章推荐
js限制文本框只能输入数字(正则表达式)
Jul 15 Javascript
jQuery中ajax的load()方法用法实例
Dec 26 Javascript
js对象继承之原型链继承实例
Jan 10 Javascript
动态加载js、css的实例代码
May 26 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
Jan 21 Javascript
在Vue methods中调用filters里的过滤器实例
Aug 30 Javascript
vue 中 命名视图的用法实例详解
Aug 14 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 Javascript
js/html光标定位的实现代码
Sep 23 #Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 #Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 #Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
Sep 23 #Javascript
js如何取消事件冒泡
Sep 23 #Javascript
页面载入结束自动调用js函数示例
Sep 23 #Javascript
往光标所在位置插入值的js代码
Sep 22 #Javascript
You might like
小偷PHP+Html+缓存
2006/11/25 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
jquery 插件开发备注
2010/08/27 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
工业设计专业推荐信
2013/10/29 职场文书
实习生自荐信范文
2013/11/13 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
技术入股合作协议书
2014/10/07 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
MySQL基于索引的压力测试的实现
2021/11/07 MySQL