Nodejs multipart / form-data不允许上传文件

时间:2015-10-27 19:16:19

标签: node.js multipartform-data multer

问题

我有一台需要上传文件的服务器,我尝试过 multiparty connect-multiparty multer 。 但是每个案例都有同样的问题:文件只上传了一些时间,我的意思是,我可以发送一个文件,库有可能不解析文件,也不会继续代码,导致不上传文件。

在一段时间内,请求发送错误"请求中止",但它在请求超时时的正常响应

这是有问题的node.js文件:

var multiparty = require('multiparty');
var multer = require('multer');
var upload = multer({
                    dest: "/uploads/"
                });

///----rest of code----

//1. Multiparty
app.post("/upload",[function(req, res){
     var form = new multiparty.Form({uploadDir:'/uploads/'});

    console.log("to upload")
    form.parse(req, function (err, fields, files) {
        console.log("uploaded");
        res.json({uploaded: true});
    })
}]


//2. multer

app.post("/upload2",[
    function(req, res, next){
        console.log("to upload");
        next();
    },
    upload.fields([
        {name: "file"},
        {name: "thumbnail"}
    ]),
    function(req, res){
        console.log("uploaded");
        res.json({uploaded: true});
    }]

2 个答案:

答案 0 :(得分:1)

确保您的表单看起来像这样

<form enctype="multipart/form-data" action="..." method="..."> 
  ... 
</form>

说实话,你最好使用node-formidable。它是npm上最常用的multipart / form-data包。

该示例直接开箱即用。

干杯

答案 1 :(得分:0)

https://stackoverflow.com/a/23975955/4920678 我正在使用此答案中的设置,在同一个端口上使用http和https。 事实证明,使用该代理的设置损坏了太大或类似的包,然后文件永远不会被解析