js 实现 本地图片预览
来源:互联网 发布:java am pm转24小时制 编辑:程序博客网 时间:2024/05/03 08:16
ie 用 filter 对象
其它浏览器 则用 HTML5 中的 FileReader 对象
<html>
<head>
<meta charset="utf-8" />
</head>
<script>
/**
* 进行图片预览
*/
function change() {
var pic = document.getElementById("preview"), //显示图片的 img 元素
file = document.getElementById("f"); //选择图片的 file 元素
var ext = file.value.substring(file.value.lastIndexOf(".") + 1)
.toLowerCase(); //取用户选择的文件后辍名
var allow = 'jpeg,jpg,gif,png'; //设置允许的图片的格式
// gif在IE浏览器暂时无法显示
if (allow.indexOf(ext)=-1) { //图片格式不正确就返回
alert("图片的格式必须为png或者jpg或者gif或者jpeg格式!");
return;
}
//判断浏览器是 IE
var isIE = navigator.userAgent.match(/MSIE/) != null, isIE6 = navigator.userAgent
.match(/MSIE 6.0/) != null;
if (isIE) { // 是 IE
file.select();
//获取file域 中的 文件路径
var reallocalpath = document.selection.createRange().text;
// IE6浏览器设置img的src为本地路径可以直接显示图片
if (isIE6) { // 是 ie 6
pic.src = reallocalpath;
} else {
// 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
pic.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\""
+ reallocalpath + "\")";
// 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
pic.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
}
} else {
html5Reader(file);
}
}
/**
* HTML 5 的方式读取
*/
function html5Reader(file) {
var file = file.files[0];
//创建文件读取
var reader = new FileReader();
//这个方法能转换成实际要传的数据
reader.readAsDataURL(file);
reader.onload = function(e) {
var pic = document.getElementById("preview"); //展示图片的格式
pic.src = this.result; // result属性包含的是以data URL编码的file/blob数据
}
}
</script>
<body>
<form enctype="multipart/form-data" name="form1">
<input id="f" type="file" name="f" onchange="change()" />
<div class="upload">上传图片</div>
<p>预览:</p>
<p>
<img id="preview" alt="" name="pic" />
</p>
</form>
</body>
</html>
还有另一种方法
获取window 对象的 URL 属性
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
/**
* 从 file 域获取 本地图片 url
* file 域 id
* @return 返回所选文件的 id
*/
function getFileUrl(sourceId) {
var url;
if (navigator.userAgent.indexOf("MSIE") >= 1) { // IE
url = document.getElementById(sourceId).value;
} else if (navigator.userAgent.indexOf("Firefox") > 0) { // Firefox
url = window.URL
.createObjectURL(document.getElementById(sourceId).files
.item(0));
} else if (navigator.userAgent.indexOf("Chrome") > 0) { // Chrome
url = window.URL
.createObjectURL(document.getElementById(sourceId).files
.item(0));
}
return url;
}
/**
* 将本地图片 显示到浏览器上
* @param sourceId
* 文件域 的id
* @param targetId
* 用来显示图片的 元素 id
*/
function preImg(sourceId, targetId) {
// 取所选文件的 url
var url = getFileUrl(sourceId);
var imgPre = document.getElementById(targetId);
imgPre.src = url;
}
</script>
</head>
<body>
<form action="">
<input type="file" name="imgOne" id="imgOne"
onchange="preImg(this.id,'imgPre');" />
<img id="imgPre" src="" width="300px"
height="300px" style="display: block;" />
</form>
</body>
</html>
0 0
- js 实现 本地图片预览
- js实现本地图片预览
- 【转载】js 实现 本地图片预览
- js实现网页图片上传本地预览
- premage.js 实现预览本地上传图片
- JS原生实现本地图片上传预览
- js预览本地图片
- js本地图片预览
- js本地图片预览
- JS本地预览图片
- JS 本地图片预览
- JS实现本地图片在线图片预览无需上传服务器
- Js 图片上传本地预览
- js 预览本地图片s
- JS实现上传本地图片前先预览
- JS实现图片预览
- js实现图片预览
- js实现图片预览
- 李开复:算法的力量(转)
- 【廖雪峰】《安装Python》学习笔记
- Hibernate标准查寻Criteria 用法总结
- 黑马程序员_文件的读写操作
- Android 学习 bug收集
- js 实现 本地图片预览
- DOM树节点解析(转)
- 【转载】使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机完整说明版
- android 开发中 常见的四种事件注册方式
- struts 学习总结----开发流程
- Struts2学习总结 ---- 数据类型转换器Converter
- compressed/head.s __setup_mmu
- contentType对应的文件类型 :
- struts 学习总结 ---- 文件上传与下载
原创粉丝点击热门IT博客热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 换气扇价格 折叠扇子 制作小台灯步骤 折叠小台灯 美的小台灯 自制简易小台灯 学习小台灯 科技小制作台灯做法 科学小制作台灯 科技小制作台灯 制作小台灯 自制小台灯 小台灯图片 小型台灯 台灯推荐 欧式小台灯 小台灯作文 18w台灯 装饰台灯图片 移动台灯 折叠台灯价格 精品小台灯 台灯有什么品牌 粉色台灯 学生用小台灯 台灯小开关 设计台灯 学生台灯推荐 台灯维修 阳台灯价格 小学生用什么台灯 简单的手工制作小台灯 家用台钻价格 电动工具台钻 电钻改台钻 木工台钻 diy小台钻 台钻哪个牌子好 台钻那个牌子好 台钻 z4116 品牌台钻