html上传图片功能实现,用HTML5的File API实现上传图片预览功能

前几天做了一个项目,涉及到上传本地图片的功能,正好之前了解过 html5 可以上传本地图片,然后再网上看了一些demo结合自己的需求,终于搞定了。(PS : 不得不承认我这个人有多懒,没有需求的时候我向来不主动去学习)。移动端完全支持哦!已测试。

下面给大家看看代码吧怎么实现的

第一:HTLM部分(这里不去做漂亮的样式了我们注重学习功能)

注:如果想写成很漂亮的那种上传按钮,告诉大家我的写法就是模拟上传,即在input下面决定定位一张图片(上传按钮),input的宽高和图片色值一样大小,透明度为0 ,最后别忘记涉及z-index的顺序。

第二:JS利用H5新功能处理上传

Js实现图片上传前的预览功能,主要是使用html5 的Files API实现,ie可兼容部分功能,在火狐和chrome下正常运行。HTML5的 file input标签支持multiple 和 accept ,前一个属性可控制多文件选择,后一个控制上传的文件类型。预了解更多关于File API的资料,有自己查下。

window.URL = window.URL || window.webkitURL;

var fileElem = document.getElementById("fileElem"),

fileList = document.getElementById("fileList");

function handleFiles(obj) {

var files = obj.files,

img = new Image();

if(window.URL){

//File API

alert(files[0].name + "," + files[0].size + " bytes");

img.src = window.URL.createObjectURL(files[0]); //创建一个object URL,并不是你的本地路径

img.width = 200;

img.onload = function(e) {

window.URL.revokeObjectURL(this.src); //图片加载后,释放object URL

}

fileList.appendChild(img);

}else if(window.FileReader){

//opera不支持createObjectURL/revokeObjectURL方法。我们用FileReader对象来处理

var reader = new FileReader();

reader.readAsDataURL(files[0]);

reader.onload = function(e){

alert(files[0].name + "," +e.total + " bytes");

img.src = this.result;

img.width = 200;

fileList.appendChild(img);

}

}else{

//ie

obj.select();

obj.blur();

var nfile = document.selection.createRange().text;

document.selection.empty();

img.src = nfile;

img.width = 200;

img.οnlοad=function(){

alert(nfile+","+img.fileSize + " bytes");

}

fileList.appendChild(img);

}

}

PS: :大家在用的时候有什么问题及时给我反馈,源码都在页面上了!祝大家学习愉快!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值