读取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 全角转半角部分
Oct 28 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
jQuery实现用户输入自动完成功能
Feb 13 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
Mar 09 Javascript
聊聊JavaScript如何实现继承及特点
Apr 07 Javascript
Webpack 服务器端代码打包的示例代码
Sep 19 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
JavaScript中arguments和this对象用法分析
Aug 08 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
Feb 27 Javascript
微信小程序实现选项卡滑动切换
Oct 22 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+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
JS实现简单打字测试
2020/06/24 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
简单介绍Python中的round()方法
2015/05/15 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
北大青鸟学生求职信
2013/09/24 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
学习十八大报告感言
2014/02/04 职场文书
医院搬迁方案
2014/06/14 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
家长对孩子的寄语
2015/02/26 职场文书
销售人员管理制度
2015/08/06 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis