读取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 相关文章推荐
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
Jan 21 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
JS简单生成两个数字之间随机数的方法
Aug 03 Javascript
vue router路由嵌套不显示问题的解决方法
Jun 17 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
Jul 18 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
JS实现的简单标签点击切换功能示例
Sep 21 Javascript
基于vue-ssr服务端渲染入门详解
Jan 08 Javascript
高性能的javascript之加载顺序与执行原理篇
Jan 14 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 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
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
简单的js分页脚本
2009/05/21 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
放飞蜻蜓反思
2014/02/05 职场文书
先进集体事迹材料
2014/02/17 职场文书
家长通知书教师评语
2014/04/17 职场文书
高中生操行评语大全
2014/04/25 职场文书
企业文化标语口号
2014/06/09 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
学生退学证明
2015/06/23 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript