2017-07-14 3 views
1

Base64データURL形式のAPIからイメージを取得しています。私はこれをフォームデータのファイルを期待している別のAPIへの入力として使用する必要があります。ここではCURL例です: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); 

それから私はAjaxのPOSTのためのデータ要素としてajaxDataを渡しています。そのAPIはファイルをAmazonに保存し、URLを返します。

URLは「blob」という名前のファイルをダウンロードし、これを「blob.png」という名前に変更すると、有効な画像であることがわかります。ですから、1つの質問は、formdataに名前を指定して適切な拡張子を持つにはどうすればいいのですか?そして、ここで私が間違っているのは、通常のファイルアップロードで通常起こることを完全にエミュレートしていないことですか?

答えて

1

あなたは、ファイル名

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

ああ、それを理解しました。最初のファイルへのブロブを変換する必要がありました:

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

利用第三のparamとして使用されますappendメソッドの3番目の引数を指定することができ、ファイルのコンストラクタは以下がありますサポート。 – Kaiido

関連する問題