读取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 设计模式之组合模式解析
Apr 09 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
微信小程序之ES6与事项助手的功能实现
Nov 30 Javascript
angular中子控制器向父控制器传值的实例
Oct 08 Javascript
详解微信小程序之scroll-view的flex布局问题
Jan 16 Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 Javascript
JS 数组基本用法入门示例解析
Jan 16 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
javascript实现前端分页功能
Nov 26 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中常用数组处理方法实例分析
2008/08/30 PHP
php横向重复区域显示二法
2008/09/25 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php intval函数用法总结
2019/04/14 PHP
php面向对象重点知识分享
2019/09/27 PHP
onpropertypchange
2006/07/01 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
python文件操作整理汇总
2014/10/21 Python
Python unittest单元测试框架总结
2018/09/08 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
大学毕业的自我鉴定
2013/10/08 职场文书
网络维护管理员的自我评价分享
2013/11/11 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
小学母亲节活动方案
2014/03/14 职场文书
群众路线调研报告范文
2014/11/03 职场文书
房地产项目合作意向书
2015/05/08 职场文书
感谢师恩主题班会
2015/08/17 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python