读取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渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
jQuery基础知识filter()和find()实例说明
Jul 06 Javascript
JS链式调用的实现方法
Mar 07 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
Sep 22 Javascript
图解JavaScript中的this关键字
May 28 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
Dec 18 Javascript
angularjs下拉框空白的解决办法
Jun 20 Javascript
Vue2.0系列之过滤器的使用
Mar 01 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
vue实现div单选多选功能
Jul 16 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截取中文字符串的问题
2006/07/12 PHP
php根据年月获取季度的方法
2014/03/31 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python进阶教程之循环对象
2014/08/30 Python
python中as用法实例分析
2015/04/30 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
解决Python一行输出不显示的问题
2018/12/03 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
如何理解委托
2012/01/06 面试题
公司行政经理岗位职责
2013/12/24 职场文书
社团成立邀请函
2014/01/08 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS