Dropzone.js不会在Windows

时间:2016-11-03 12:57:33

标签: javascript node.js ubuntu file-upload dropzone.js

我有一个基于dropzone的文件上传器。我将在下面提供它的代码。我先解释一下这个问题:

我正在使用ubuntu机器,我的服务器代码,即node.js,基于multer库,也运行在ubuntu机器上,前端运行在windows机器上的apache服务器上(我说所有这些因为它可能会有所作为,我希望它不会。)

每当我在我的ubuntu机器上传文件时,它一帆风顺。每当我在任何Windows机器上传文件时,文件上传都会完成(进度条以正常方式从0到100),但请求永远不会到达服务器(至少它永远不会出现在服务器日志中)。

dropzone表单的HTML:

<div id="shp" class="uploader">
  <form enctype="multipart/form-data" action="http://serverip:9601/uploadpath"
    method="post"
    class="dropzone"
    id="dropzone">
  </form>
  <button id="submit">Upload</button>
</div>

Javascript(客户端):

Dropzone.options.dropzone = {

  // Prevents Dropzone from uploading dropped files immediately
  acceptedFiles: ".zip",
  addRemoveLinks: true,
  autoProcessQueue: false,

  init: function() {
    var submitButton = document.getElementById("submit");
    var dropzone = this; // closure

    submitButton.addEventListener("click", function() {
      totalProgress = 0;
      dropzone.processQueue(); // Tell Dropzone to process all queued files.
    });

  },
  maxFiles : 1,
  parallelUploads: 10000,
  paramName: myParamName,
  uploadMultiple: false
};

function myParamName(){
  return "file";
}

Node.js的:

router.post('/uploadpath', upload.single('file'), (req, res, next) => {
    //Do some stuff
    res.status(200).send({ success: true, message: 'Upload Completed!' });
});

1 个答案:

答案 0 :(得分:1)

原来它与dropzone无关,但其他一些我没有在这里发布的东西。我有一些中间件正在验证上传文件的mime类型,在我的情况下这是一个zip文件(我只接受它们)。

在windows中,zip文件的mime类型是:application / x-zip-compressed 但是在ubuntu中,zip文件的mime类型是:application / zip

多么方便。