2017-07-14 83 views
1

我以Base64数据URL格式从API获取图像。我需要将它用作另一个期望表单数据中的文件的API的输入。下面是卷曲例如:使用Base64图像数据URI作为POST输入

curl -X POST "<API URL>" -H 'content-type: multipart/form-data' -F "[email protected]/path/to/your/file.png" 

我发现了一个dataURItoBlob效用和我这样做:

imageBlob = dataURItoBlob(dataUrl); 
var ajaxData = new FormData(); 
ajaxData.append('files', imageBlob); 

然后我传递ajaxData作为一个AJAX POST数据元素。该API将文件存储在Amazon上并返回一个URL。

URL下载一个名为“blob”的文件,如果我将它重命名为“blob.png”,我可以看到它是一个有效的图像。所以有一个问题是,我怎样才能在formdata中指定一个名称,以便它具有适当的扩展名?而且,我在这里做错了什么,它不能完全模拟通常情况下用纯文件上传会发生什么?

回答

1

可以指定第三个参数append方法将被用来作为文件名

ajaxData.append('files', imageBlob, "image.png"); 
0

啊明白了。只好团块转换为文件第一:

imageFile = new File([imageBlob], "image.png") 
+0

使用第三PARAM,文件的构造函数有少支持。 – Kaiido

相关问题