1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Javascript图片上传前的本地预览实例【javascript】

Javascript图片上传前的本地预览实例【javascript】

时间:2023-12-06 19:13:43

相关推荐

Javascript图片上传前的本地预览实例【javascript】

web前端|js教程

Javascript,图片本地预览

web前端-js教程

图片的上传预览功能主要用于图片上传前的一个效果的预览,目前主流的方法主要有js,jquery与flash实现,但我们一般都会使用js来实现图片上传预览功能,下面来看一个例子。

原理:

分为两步:当上传图片的input被触发并选择本地图片之后获取要上传的图片这个对象的URL(对象URL);把对象URL赋值给事先写好的img标签的src属性即可把图片显示出来。

在这里,我们需要了解Javascript里File对象、Blob对象和window.URL.createObjectURL()方法。

File对象:

File对象可以用来获取某个文件的信息,还可以用来读取这个文件的内容.通常情况下,File对象是来自用户在一个input元素上选择文件后返回的FileList对象,也可以是来自由拖放操作生成的 DataTransfer对象.

下面来看获取FileList对象:

手表网站源码,vscode里js代码提示插件,ubuntu硬盘挂不上,tomcat如何部署flex,爬虫箱电源,php截取字符串之前,成都seo优化推广有哪些步骤lzw

$(#upload).change(function(){

// 获取FileList的第一个元素

alert(document.getelementbyid(upload).files[0]);

});

Blob对象:

一个Blob对象就是一个包含有只读原始数据的类文件对象.Blob对象中的数据并不一定得是JavaScript中的原生形式.File接口基于Blob,继承了Blob的功能,并且扩展支持了用户计算机上的本地文件.

我们想要得到的对象URL实际上就是从Blob这个对象获取的,因为File的接口继承Blob。下面就来把Blob对象转换成URL:

易语言外挂源码,Mac能不能用vscode,ubuntu退出编辑,idea社区办tomcat配置,sqlite表格关联,网页设计 岗位说明书,公司邮箱pop服务器地址,垂直多级导航栏的插件,前端框架怎么定义,爬虫反制机制,php聊天系统,seo网络推广软件,springboot切面不执行,html电子商务网站模板,网页右侧浮动qq,shopex 天猫模板,网站后台页面设计教程,好看的html手机页面,图书馆借阅管理系统源代码,delphi程序破解lzw

var f = document.getelementbyid(upload).files[0];

var src = window.URL.createObjectURL(f);

document.getElementById(preview).src = src;

兼容性:

上述方法适用于chrome浏览器

如果是IE浏览器可以直接使用input的value来代替src

网上查看资料有直接使用File对象的getAsDataURL()方法获取URL的,现在这个方法都已经废除,类似的还有getAsText()和getAsBinary()方法,我们来看这样一个例子。

威客商业版源码,ubuntu开机时蓝屏,tomcat一打开就乱码,网络爬虫实践心得,php上一级文件夹,邦优seolzw

function getFullPath(obj) { //得到图片的完整路径

if (obj) {

//ie

if (window.navigator.userAgent.indexOf("MSIE") >= 1) {

obj.select();

return document.selection.createRange().text;

}

//firefox

else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {

if (obj.files) {

return obj.files.item(0).getAsDataURL();

}

return obj.value;

}

return obj.value;

}

}

这段代码是获取客户端图片的完整路径

我们再限制其大小和格式

$("#loadFile").change(function () {

var strSrc = $("#loadFile").val();

img = new Image();

img.src = getFullPath(strSrc);

//验证上传文件格式是否正确

var pos = strSrc.lastIndexOf(".");

var lastname = strSrc.substring(pos, strSrc.length)

if (lastname.toLowerCase() != ".jpg" alt="Javascript图片上传前的本地预览实例【javascript】" title="Javascript图片上传前的本地预览实例【javascript】") {

alert("您上传的文件类型为" + lastname + ",图片必须为 JPG 类型");

return false;

}

//验证上传文件宽高比例

if (img.height / img.width > 1.5 || img.height / img.width < 1.25) {

alert("您上传的图片比例超出范围,宽高比应介于1.25-1.5");

return;

}

//验证上传文件是否超出了大小

if (img.fileSize / 1024 > 150) {

alert("您上传的文件大小超出了150K限制!");

return false;

}

其中,loadFile是html input file的id。在它的change事件,也就是选择了要上传的文件以后,让图片显示在图片框里吗,在上面代码的最后加上以下代码

$("#stuPic").attr("src", getFullPath(this));

既然用到了jQuery,下面我们再分享一个用jQuery的写的代码实例:

$(function(){

var ei = $("#large");

ei.hide();

$("#img1").mousemove(function(e){

ei.css({top:e.pageY,left:e.pageX}).html(\).show();

}).mouseout( function(){

ei.hide("slow");

})

$("#f1").change(function(){

$("#img1").attr("src","file:///"+$("#f1").val());

})

});

#large{position:absolute;display:none;z-index:999;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。