javascript - 然后 jquery 并获取 src - 将图像上传到服务器

标签 javascript jquery arrays promise

我想立即将图像文件列表传递到服务器。

这是我的代码,其中函数 srcToFile 用于创建一个新文件作为图像。

var formData = new FormData();

// Iterate all td's in second column
$("#table-image tbody tr:not(:first-child)").each(function (index, value) {
  var blob = value.cells[4].innerText;
  var fileName = (index + 1) + ".jpg";
  srcToFile(blob, fileName, "image/jpeg")
    .then(function (file) {
      formData.append("file", file);
      alert(formData.getAll("file").length); ** // I know that I can use aJax jquery to pass one by one at here**
    }, function (error) {
      //
    });
});

function srcToFile(src, fileName, mimeType) {
    return (fetch(src)
        .then(function (res) { return res.arrayBuffer(); })
        .then(function (buf) { return new File([buf], fileName, { type: mimeType }); })
    );
}

在这种情况下如何使用 formData

最佳答案

srcToFile 返回的所有 Promise 放入一个数组中,然后使用 $.when() 等待所有它们。

var promises = $("#table-image tbody tr:not(:first-child)").map(function (index, value) {
  var blob = value.cells[4].innerText;
  var fileName = (index + 1) + ".jpg";
  return srcToFile(blob, fileName, "image/jpeg")
    .then(function (file) {
      formData.append("file[]", file);
    }, function (error) {
      //
    });
}).get();
$.when(promises).then(function() {
    alert(formData.getAll("file[]").length);
    return $.ajax({
        url: "yourURL",
        type: "post",
        processData: false,
        data: formData
    });
}).then(...)

关于javascript - 然后 jquery 并获取 src - 将图像上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45429532/

相关文章:

javascript - 实时访问 html 输入并在 html-element 中显示

java - 如何将矩阵保存在文本文件中

c++ - 如何以 5 行显示分数?

javascript - 如何删除mongodb数组中的元素

javascript - 禁用网页上的滚动并仅允许在页面部分上滚动

javascript - 重定向到包含原始帖子数据的 URL

javascript - 如何在 SWFUpload 中重置队列?

arrays - Ada 中的字符串数组

javascript - 有什么方法可以找出 Javascript 中 if 条件的真值吗?

javascript - 在 IE6 中下载 Javascript 生成的 XML