图片上传之blob对象预览
来源:互联网 发布:php 工作环境 编辑:程序博客网 时间:2024/05/21 17:26
今天听同事说有些图片上传控件,可以不需要先上传,就可以预览,并且桌面浏览器和手机浏览器都兼容。
于是在网上找了几个例子,查看其工作原理,发现都是利用blob对象,但网上的例子,代码都很繁琐。
因此花点时间,自己封装了一个简单实用的jquery控件。
相对网上的繁杂的代码,我的例子代码简洁易读,并且自带表单对象(formdata)提交,大家可以方便的扩展或改写。
废话不多说,先上js控件代码:
$.fn.imgUpload = function () { var o = $(this); var upload = {}; upload.formData = new FormData(); upload.frame = $('<div style="width:100%;height:100%;"></div>').appendTo(o); upload.add = $('<div style="float:left;position:relative;margin:5px;width:60px;height:60px;border:1px solid #d9d9d9;">' + '<div style="position:absolute;width:100%;height:100%;font-size:42px;left:0;top:0;color:#ccc;">+</div>' + '<input id="uploadInput" type="file" accept="image/jpg,image/jpeg,image/png,image/gif" multiple="" style="width:100%;height:100%;opacity:0;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);">' + '</div>').appendTo(upload.frame); $("#uploadInput").on("change", function (e) { var url = window.URL || window.webkitURL || window.mozURL,files = e.target.files; for (var i = 0, len = files.length; i < len; ++i) { var file = files[i]; var src = url ? url.createObjectURL(file) : e.target.result; $('<div style="float:left;margin:5px;width:60px;height:60px;background:no-repeat 50%;background-size:cover;background-image:url(' + src + ')"></div>').insertBefore(upload.add); upload.formData.append("file" + i, files[i]); } }); upload.submit = function (url, callback) { $.ajax({ url: url, method: 'POST', data: this.formData, contentType: false, processData: false, cache: false, success: function (re) { callback && callback(re); }, error: function (ex) { //error process.... } }); } return upload; };
下面是使用举例:
<div id="divContainner" style="margin: 30px;width: 540px;height: 180px;border: 1px solid #d9d9d9;"></div> <input id="submitBtn" type="button" value="提交" /><script type="text/javascript"> var upd = $('#divContainner').imgUpload(); $('#submitBtn').on('click', function () { upd.submit('/Account/ImageUpload', function (re) { alert(re); }); });</script>
本代码已通过简单测试,如有疏漏,请指正。
阅读全文
0 0
- 图片上传之blob对象预览
- 上传图片之上传前预览图片
- Ext图片上传之预览
- Ext图片上传之预览 .
- h5图片上传之图片预览
- 本地图片预览+blob使用
- jsf上传图片之图片预览、图片存储、图片获取
- web app开发之图片上传预览
- ife系列之实现图片上传预览
- 图片文件上传(blob)
- 图片上传+图片预览
- JS 上传文件之FormData 与Blob 对象
- 原生javascript FileReader对象实现图片上传本地预览效果
- JavaScript使用FileReader对象实现图片上传预览
- 微信JSDK之图片预览和图片上传
- 上传预览图片
- 自动预览上传图片
- 图片上传预览
- 如何用MAT分析Android应用内存泄露
- ES6入门学习资源共享
- 路由表选择算法
- as开启混淆时自己出现的问题,及解决
- Android7.0 Settings主菜单添加一条item
- 图片上传之blob对象预览
- 微信小程序 不同的移动设备上应该如何设置rpx单位?
- MVC中HtmlHelper用法
- GSMS六合一软件(U盘版)ISO文件下载
- 局域网设备发现之Bonjour协议
- cdn技术
- Animation动画——ObjectAnimator基本使用
- Android:adb通过app_process调用java类报错-java.lang.ClassNotFoundException
- oracle数据库创建表空间