读取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 相关文章推荐
extjs grid取到数据而不显示的解决
Dec 29 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
jQuery实现简单下拉导航效果
Sep 07 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
vue实现商城购物车功能
Nov 27 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
JavaScript生成指定范围随机数和随机序列的方法
May 05 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jqTransform美化表单
2015/10/10 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
BootStrap中
2016/12/10 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
详解python程序中的多任务
2020/09/16 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
法院先进个人事迹材料
2014/05/04 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
Java并发编程必备之Future机制
2021/06/30 Java/Android
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
mysql insert 存在即不插入语法说明
2022/03/25 MySQL