【问题标题】:Dropzone.js doesn't upload files on windowsDropzone.js 不会在 Windows 上上传文件
【发布时间】:2016-11-03 12:57:32
【问题描述】:

我有一个基于 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!' });
});

【问题讨论】:

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


    【解决方案1】:

    原来它与 dropzone 无关,而是我没有在此处发布的其他内容。我有一些中间件正在验证上传文件的 mime 类型,在我的例子中是一个 zip 文件(我只接受它们)。

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

    多么方便。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多