2017-07-14 52 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

相關問題