Javascript 将Base64图像文件URI转换为文件对象

Javascript 将Base64图像文件URI转换为文件对象,javascript,angular,file,ionic-framework,base64,Javascript,Angular,File,Ionic Framework,Base64,我必须将文件对象作为有效负载发送到后端API。如何将Base64图像文件URI转换为下面提到的文件对象格式?我试图寻找其他解决方案,但这些解决方案都是Blob到文件转换或base64数据url转换。有人能帮忙吗 Base64图像文件URL data:image/jpeg;base64,file:///storage/emulated/0/Android/data/com.abc/cache/1586842420784.jpg 这需要转换为 文件对象 File { lastModified

我必须将
文件
对象作为有效负载发送到后端API。如何将Base64图像文件URI转换为下面提到的文件对象格式?我试图寻找其他解决方案,但这些解决方案都是Blob到文件转换或base64数据url转换。有人能帮忙吗

Base64图像文件URL

data:image/jpeg;base64,file:///storage/emulated/0/Android/data/com.abc/cache/1586842420784.jpg
这需要转换为

文件对象

File {
   lastModified: 1582829787565
   lastModifiedDate: Thu Feb 27 2020 10:56:27 GMT-0800 (Pacific Standard Time) {}
   name: "TestImageAM.png"
   size: 186278
   type: "image/png"
   webkitRelativePath: ""
}

您所需要做的就是将Base64图像URI传递给
File
构造函数,这将为您提供所需格式的File对象

fileURI = 'data:image/jpeg;base64,file:///storage/emulated/0/Android/data/com.abc/cache/1586842420784.jpg'
const file = new File(fileURI, 'anyname.jpg')
console.log('File Object', file)

数据:图像/jpeg;base64,file:///storage/emulated/0/Android/data/com.abc/cache/1586842420784.jpg
哪怕是一件事?base64中编码的数据URI是base64中编码的对象(本例中为图像)的原始数据,而不是实际文件的路径是的,我从Ionic
this.camera.getPicture(options)中的这个插件中得到它
这里,imageData是我发布的,Base64文件映像URI Base64文件映像URI-嗯?你是说
file:///storage/emulated/0/Android/data/com.abc/cache/1586842420784.jpg
是base64吗?
不是base64的一部分,扩展名为
.jpg
的文件不太可能包含base64 encoded数据-因此,从头到尾,您都没有感觉到必须阅读getPicture函数的文档…imageData是base64编码的字符串或文件URI…现在,base64编码的字符串类似于
ABCDEFG
,即一系列字符,
a-Z
a-Z
0-9
+/code>,
/
…然而,文件URI类似于
file:///some/path/filename.jpg
…您把自己弄糊涂了,在文档中给文件添加了一个数据URI前缀,
让base64Image='data:image/jpeg;base64',+imageData;
是如果imageData是base64字符串,那么您最终得到的是
data:image/jpeg、 base64,file:///...
是因为您的代码在不需要为文件添加前缀的情况下添加了前缀,但它提供了此格式的文件对象,其所有值均为null
{“name”:file:///storage/emulated/0/Android/data/com.slicktalks/cache/1586844010984.jpg,“localURL”:“filename.png”,“type”:null,“lastModified”:null,“lastModifiedDate”:null,“size”:0,“start”:0,“end”:0}