繁体   English   中英

dropzone nodejs文件上传

[英]dropzone nodejs file upload

我打算使用DropZone将文件上传到我的nodejs服务器。 但是,当帖子到达我的nodejs服务器时,我无法弄清楚如何获取文件句柄。 这是我在HTML中实例化DropZone的方法:

<form action="/file-upload" class="dropzone" id="logoDropZone">
  <input type="hidden" name="userName" value="user"/>
</form>

然后,在我的nodejs服务器中,我有以下代码:

app.post('/file-upload', function (request, response) {
    console.log("Route: '/file-upload' ");
    console.log("File upload request from user: " + request.body.userName);
    // Get a file handle, read the file and then write it out to the file system.

    ...  

  });

我可以看到该代码正在执行。 我还可以通过请求对象访问输入字段中的值(请参见隐藏的输入)。 但是,如何访问文件本身,以便可以将其写入服务器文件系统?

我找到了这个问题的答案。 以下代码将文件上传到服务器:

app.post('/file-upload', function (request, response) {

  fs.readFile(request.files.file.path, function(err, data) {

    var newPath = __dirname + "/public/img/xspectra/customlogo.png";
    fs.writeFile(newPath, data, function (err) {
      console.log("Finished writing file..." + err);
      response.redirect("back");
    });

  });

});

为了使其他人不会陷入同样的​​问题,我将解释我没有正确做的事情:

1)尽管表单元素没有“名称”属性,但是可以通过名称“文件”在节点请求对象中访问文件。 可以在上面的代码中将其视为:

request.files.file.path

其中:“文件”是表单的“名称”。

2)在以下站点找到此代码(以赞扬并在下面提供建设性批评): http : //howtonode.org/af136c8ce966618cc0857dbc5e5da01e9d4d87d5/really-simple-file-uploads

尽管我非常感谢所有者创建文档,但可以使用一些改进以减少混乱。 主要是,文档需要更新以明确说明上面的点编号“ 1)”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM