使用JavaScript将url转换为文件对象

时间:2016-07-08 09:31:36

标签: javascript

我已使用dataurl将图片转换为FileReader,并为我提供如下输出:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBl…Vp1m8u4+SV/s0TpD8+91R/3Xlf8sXZv9Y9OGLk5eyVnCNu19Ntdu2jYOnaHtG7ffb7t/uP/9k=

这是一个非常长的字符串..

现在我又想将它转换为文件对象,以便我可以发布此图像。

如何再次将此图像转换为文件对象

1 个答案:

答案 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 /

的更多讨论

MDN blob file

  

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);