原来的项目都是直接通过input的file控件选择图片上传的,最近一项功能是需要通过canvas处理图片,然后上传。处理后的图片是base64格式,以前是新写一个兼容base64的上传接口处理。 于是想这个项目在前端js就将base64转换成file对象,统一file接收处理。 废话不多说,先上base64转file对象代码 <pre>function dataURLtoFile(dataurl, filename) { //将base64转换为文件 var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while(n--){ u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], filename, {type:mime});}</pre> 图片上传我这里是通过ajax上传,代码如下 <pre>var baseData = '';//base64的图片数据var formData = new FormData();formData.append("file", dataURLtoFile(baseData,"123.png"));$.ajax({ url: '/api/common/upload.html' , type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (returndata) { console.log(returndata); }, error: function (returndata) { alert(returndata); }});</pre> 搞定收工
图片base64转file对象实现file文件上传
2018-10-16
本文作者: 小罗同学
原文链接: 图片base64转file对象实现file文件上传
版权声明: 本站所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
免责声明: 文中如涉及第三方资源,均来自互联网,仅供学习研究,禁止商业使用,如有侵权,联系我们24小时内删除!
- « 上一篇PHP设计模式-链式操作
- 下一篇 »php中实现将姓名拆分为姓氏和名字
评论1
暂时没有评论