使用 javascript 上传文件

file uploading using javascript

这是我生成 zip 文件的代码;我无法将 .zip 文件上传到服务器,显示 [[Promise]] 不是文件这样的错误:

    var zip = new JSZip();

    zip.file("Hello.txt", "Hello World\n");

  /*create a folder*/

    var img = zip.folder("images");

  /*create a file in images folder*/

    img.file("Hello1.txt", "Hello111 World\n");

  /* generate the zip file */

    var content = zip.generateAsync({type:"blob"});

这是我尝试上传 zip 文件但没有得到响应的代码。

var fd = new FormData();
fd.append('fileZip', content);
$.ajax({
      data: fd,
      url: '/plan-upload/1',
      type: 'POST',
      processData: false,
      contentType: false,
      success: function(response) {
        alert("success"); /*$('#text-us').modal('toggle');*/
      }
    });

现在,我们可以将这个生成的 zip 文件上传到服务器吗?如果是,如何?如果不是,为什么?

当我们生成 zip 代码时

var content = zip.generateAsync({type:"blob"});

content 变量中有一些对象类型日期,如 promise or Blob type。 所以后端代码没有将其识别为文件,现在执行此操作

var file = new File([content], "name.zip");

现在我们可以发送这个文件,这样做

var fd = new FormData();
fd.append('fileZip', file);
$.ajax({
  data: fd,
  url: '/plan-upload/1',
  type: 'POST',
  processData: false,
  contentType: false,
  success: function(response) {
    alert("success"); /*$('#text-us').modal('toggle');*/
  }
});