这段代码展示了如何使用 JavaScript 中的 FormDataPromise 来上传多个文件。

const formData = new FormData();
const promises = fileList.map(item =>
    fetch(item.url)
        .then(response => response.blob())
        .then(blob => new File([blob], 'image.jpg'))
);

Promise.all(promises).then(files => {
    files.forEach(file => {
        formData.append('file', file);
    });
    console.log(fileList)
    console.log(formData)
});
const res = await proxy.Api.uploadPhoto(formData)

代码解释:

  1. 创建一个 FormData 对象,用于存储要上传的文件数据。
  2. 使用 fileList.map 遍历文件列表,并使用 fetch 获取每个文件的 Blob 数据。
  3. 将 Blob 数据转换为 File 对象,并使用 formData.append 将每个文件添加到 FormData 对象中。
  4. 使用 Promise.all 并发处理所有文件的上传请求。
  5. 在所有文件上传完成后,使用代理的 uploadPhoto 方法将 FormData 对象发送到服务器。

需要注意的是:

  • 确保代理 (proxy) 的配置正确,以便能够正确地处理文件上传请求。
  • 确保 fileList 中包含了正确的文件信息,包括文件 URL 和文件名。
  • 如果出现问题,可以尝试调试代码,打印出错误信息,以便更好地定位问题所在。

调试建议:

  • 打印 fileListformData 的内容,检查是否包含了正确的信息。
  • fetch 请求中添加错误处理,打印出错误信息。
  • 使用浏览器的开发者工具查看网络请求,检查请求是否成功发送以及服务器返回的响应。

希望这段代码示例和解释能够帮助你理解如何使用 JavaScript 上传多个文件。

JavaScript 使用 FormData 和 Promise 上传多个文件

原文地址: https://www.cveoy.top/t/topic/ntBU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录