【问题标题】:Node.js/Express Async File UploadNode.js/Express 异步文件上传
【发布时间】:2014-09-16 04:05:17
【问题描述】:

我已经翻阅了许多(而且大多是过时的)旧堆栈溢出和 Google 答案,但找不到适用于最新版本的 Node 和 Express 的该死的东西。

目前异步文件上传的首选插件是什么?

编辑:我正在将文件上传到我的 Node.js 服务器。它正在运行 Express。它应该能够处理任何文件类型。

【问题讨论】:

  • 上传到什么地方?这完全取决于您将文件发送到什么位置以及它支持哪种上传方式。

标签: javascript node.js express


【解决方案1】:

我使用formidable 进行文件上传。您可以将它们存储在目录中,也可以使用 Amazon S3 将它们存储在其服务器上。它就像一个魅力。

下面是一些代码的样子:

  // At the top of your modules
  var formidable = require('formidable');

  var form = new formidable.IncomingForm(); //Receive form

  form.parse(req, function(err, fields, files) { //Parse form and data
     // Do form stuff, you can access the files
  });

使用 jQuery,您可以执行以下操作:

     $('#your_form').on('submit', function(e) {
        var formData = new FormData($(this)[0]);
        $.ajax({
            url : '/your/url/',
            type: 'POST',
            contentType: 'multipart/form-data',
            data: formData,
            success: function (msg) {
               console.log(msg);
            },
            processData: false
        });

        e.preventDefault();
    });

【讨论】:

  • 这是用于异步上传吗? (即页面不刷新)如果是这样,你能告诉我前端的 html/javascript 吗?
  • @opticon,是的。有办法做到这一点。 jQuery可以做到这一点,我也用过。
  • @opticon 我已经更新了我的代码。这应该适合你。祝你好运。
  • 到目前为止看起来不错!愿意给我介绍一下 form.parse 回调函数中的内容吗?
  • @opticon 我建议您使用 AWS s3 来存储您的图像。这是我用的。我有执行此操作的代码,但是如果要将它们存储到本地目录中,则必须使用名为“文件系统”的内置模块(var fs = require('fs');) -你想要哪一个?
猜你喜欢
  • 2016-01-02
  • 1970-01-01
  • 2017-11-29
  • 2014-11-30
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多