基于html5的一个web项目,目前想实现客户端的 图片 压缩 上传 ,前端技术只局限于js和html5. 通过html5的canvas处理调用其toDataURL获取到了缩放后图片的base64编码。当然,如果 自 己写 服务 端来保存图片是没有任何 问题 的。现在的问题是如何将编码过后的图片 信息 上传一些专门的云存储上(保存为jpg格式的图片),试过七牛和又拍云都是不行的.不知道 阿里 的行不行.
// https://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata
// https://stackoverflow.com/questions/27553617/convert-blob-to-file
// 转换图片 base64 => file
function dataURItoFile(dataURI, fileName) {
var byteString = atob(dataURI.split(',')[1]);
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia = byteString.charCodeAt(i);
}
// return new Blob([ab], { type: 'image/jpeg' });
return new File([ia], fileName, {type: 'image/jpeg', lastModified: Date.now()})
}
-------------------------
引用第7楼div-wang于2016-11-18 16:29发表的 Reoss支持直接从客户端提交base64编码保存图片吗 :
可以用new Blob把base64转成blob二进制文件,用formData提交数据;
可以搜索Stack Overflow :Convert Data URI to File then append to FormData [url=https://bbs.aliyun.com/job.php?action=topost&tid=280174&pid=846247][/url]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。