我已使用dataurl
将图片转换为FileReader
,并为我提供如下输出:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBl…Vp1m8u4+SV/s0TpD8+91R/3Xlf8sXZv9Y9OGLk5eyVnCNu19Ntdu2jYOnaHtG7ffb7t/uP/9k=
这是一个非常长的字符串..
现在我又想将它转换为文件对象,以便我可以发布此图像。
如何再次将此图像转换为文件对象
答案 0 :(得分:4)
将dataurl
转换为文件对象
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[i] = byteString.charCodeAt(i);
}
var blob = new Blob([ia], { type: 'image/jpeg' });
var file = new File([blob], "image.jpg");
基于@ William-t回答/有关stackoverflow.com/questions/4998908 /
的更多讨论Blob对象表示不可变的原始数据的类文件对象。 Blob表示不一定是JavaScript本机的数据 格式。 File接口基于Blob,继承blob 功能并将其扩展为支持用户系统上的文件。
MDN FormData
var form = new FormData(),
request = new XMLHttpRequest();
form.append("image", blob, "myimage.jpg");
request.open("POST", "/upload", true);
request.send(form);