前段时间遇到一个问题,前端想实现图片上传预览(不经过后端PHP或JAVA处理),用户点击file按钮上传文件,点击确定马上就能看到预览的效果,但在实现的时候无论怎样都取不到file上图片的真实路径,得到的反而是C:\fakepath\a.jpg,这个路径是错误的。百度之后得到说浏览器基于保护用户的相关安全措施,隐藏了上传的真实路径,用fakepath代替,当然,调整浏览器的相关安全设置可以解决这个问题。但我们不可能让所有用户都通过设置浏览器的安全设置来进行图片上传,这种方法在网络交互上显然不现实。

名称:图片上传本地预览插件 v1.1
介绍:基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari
插件网站: http://keleyi.com/keleyi/phtml/image/16.htm
参数说明:
Img:图片ID;
Width:预览宽度;
Height:预览高度;
ImgType:支持文件类型;
Callback:选择文件显示图片后回调方法;
使用方法:
<div> <img id="ImgPr" width="120" height="120" /></div> <input type="file" id="up" />
把需要进行预览的IMG标签外 套一个DIV 然后给上传控件ID给予uploadPreview事件
$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120, ImgType: ["gif", "jpeg", "jpg", "bmp", "png"], Callback: function () { }});
实例:
jQuery.fn.extend({
uploadPreview: function (opts) {
var _self = this,
_this = $(this);
opts = jQuery.extend({
Img: "ImgPr",
Width: 100,
Height: 100,
ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
Callback: function () {}
}, opts || {});
_self.getObjectURL = function (file) {
var url = null;
if (window.createObjectURL != undefined) {
url = window.createObjectURL(file)
} else if (window.URL != undefined) {
url = window.URL.createObjectURL(file)
} else if (window.webkitURL != undefined) {
url = window.webkitURL.createObjectURL(file)
}
return url
};
_this.change(function () {
if (this.value) {
if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
alert("选择文件错误,图片类型必须是" + opts.ImgType.join(",") + "中的一种");
this.value = "";
return false
}
//高版本Jquey使用 if ($.support.leadingWhitespace)
if ($.browser.msie) { //低版本jquery中使用的方式
try {
$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
} catch (e) {
var src = "";
var obj = $("#" + opts.Img);
var div = obj.parent("div")[0];
_self.select();
if (top != self) {
window.parent.document.body.focus()
} else {
_self.blur()
}
src = document.selection.createRange().text;
document.selection.empty();
obj.hide();
obj.parent("div").css({
'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)',
'width': opts.Width + 'px',
'height': opts.Height + 'px'
});
div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src
}
} else {
$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))
}
opts.Callback()
}
})
}
});
调用:
$(function () {
$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120 });
});
HTML结构:
<div> <img id="ImgPr" width="120" height="120" /> </div> <input type="file" id="up" />
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jquery
# 图片上传
# 本地预览
# jquery实现图片上传之前预览的方法
# JS上传前预览图片实例
# jQuery+HTML5实现图片上传前预览效果
# JQ图片文件上传之前预览功能的简单实例(分享)
# 上传
# 就能
# 但在
# 能让
# 火狐
# 不支持
# 一个问题
# 回调
# 前段时间
# 解决这个问题
# 大家多多
# 不现实
# 安全措施
# 上传文件
# 都取
# 不经过
# 后端
# 这种方法
# ImgType
相关文章:
建站之星代理如何优化在线客服效率?
如何获取上海专业网站定制建站电话?
官网网站制作腾讯审核要多久,联想路由器newifi官网
如何快速选择适合个人网站的云服务器配置?
h5在线制作网站电脑版下载,h5网页制作软件?
学校建站服务器如何选型才能满足性能需求?
制作农业网站的软件,比较好的农业网站推荐一下?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何生成腾讯云建站专用兑换码?
如何通过多用户协作模板快速搭建高效企业网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站10G流量真的够用吗?如何应对访问高峰?
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何快速配置高效服务器建站软件?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何安全更换建站之星模板并保留数据?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
如何用AWS免费套餐快速搭建高效网站?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
清除minerd进程的简单方法
如何在橙子建站中快速调整背景颜色?
如何通过VPS搭建网站快速盈利?
如何在IIS中新建站点并解决端口绑定冲突?
常州自助建站工具推荐:低成本搭建与模板选择技巧
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何在腾讯云服务器快速搭建个人网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
制作企业网站建设方案,怎样建设一个公司网站?
建站ABC备案流程中有哪些关键注意事项?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何在万网自助建站平台快速创建网站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何用PHP快速搭建高效网站?分步指南
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何在景安服务器上快速搭建个人网站?
建站之星代理商如何保障技术支持与售后服务?
深圳网站制作案例,网页的相关名词有哪些?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
常州企业网站制作公司,全国继续教育网怎么登录?
海南网站制作公司有哪些,海口网是哪家的?
制作网站的软件免费下载,免费制作app哪个平台好?
江苏网站制作公司有哪些,江苏书法考级官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。