读取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 相关文章推荐
JavaScript 判断浏览器是否支持SVG的代码
Mar 21 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
jquery选择器之层级过滤选择器详解
Jan 27 Javascript
Jquery对数组的操作技巧整理
Mar 25 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
Mar 02 Javascript
JS获取Table中td值的方法
Mar 19 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
常用的几个JQuery代码片段
Mar 13 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
Jul 24 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
Vue中使用canvas方法总结
Feb 12 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
第二节 对象模型 [2]
2006/10/09 PHP
php email邮箱正则
2008/10/08 PHP
PHP 面向对象详解
2012/09/13 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
python数据封装json格式数据
2018/03/04 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
遥感技术与仪器求职信
2014/02/22 职场文书
2014年最新学习全国两会精神心得
2014/03/17 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
授权委托书
2014/07/31 职场文书
成绩单家长意见
2015/06/03 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript