使用javascript上传文件

时间:2018-02-09 12:28:24

标签: javascript laravel zip jszip

这是我生成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文件上传到服务器吗?如果有,怎么样?如果不是,为什么?

1 个答案:

答案 0 :(得分:0)

当我们生成执行此代码的zip时

  

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

内容变量中有一些对象类型日期,如promiseBlob 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');*/
  }
});