如何将来自URL的图像附加到FormData中 - Javascript

4
这是我的一段小JavaScript代码:
<script>

var formData = new FormData();

URL = "view.php?fetchImageById=1";

formData.append("imageFile", ....);

formData.append("author","user");
formData.append("description","image");

x=new XMLHttpRequest();
x.open("POST","upload.php",true);
x.setRequestHeader("Content-type", "multipart/form-data");
x.setRequestHeader("Content-Length",formData.length);
x.send(formData);
</script>

我不知道如何将URL附加到formData中。

与追加其他内容的方式相同...(尽管我怀疑您实际上并不是指“将URL追加到formData”)。 - Quentin
1个回答

9

您可以执行两个XMLHttpRequest()请求;首先,将响应类型设置为"blob",通过GET请求将图像作为Blob获取;然后将Blob响应附加到POSTFormData中。

var formData = new FormData();   
URL = "view.php?fetchImageById=1";    
var x;

var request = new XMLHttpRequest();
request.responseType = "blob";
request.onload = function() {
  formData.append("imageFile", request.response);
  formData.append("author","user");
  formData.append("description","image");
  x = new XMLHttpRequest();
  x.open("POST","upload.php",true);
  x.setRequestHeader("Content-type", "multipart/form-data");
  x.setRequestHeader("Content-Length", formData.length);
  x.send(formData);
}
request.open("GET", URL);
request.send();

确保不要使用JSON.stringify作为请求体。 - D4ITON

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接