【问题标题】:ExpressJS get file from FormDataExpressJS 从 FormData 获取文件
【发布时间】:2016-11-04 05:26:53
【问题描述】:

我是ExpressJS 的新手, 我想从javascript上传一个file和一些data,使用AJAX post作为FormData object,表达jsroutes,将文件保存在服务器中。我可以从前端发帖,但无法从服务器端检索数据。

下面是我试过的代码sn-p:

来自客户端代码 sn-p 的 AJAX 发布:

var files = [];
    $('#upload').on('change',function(){
        var form_data = new FormData();
        form_data.append('file_uplaoded',$('#upload')[0].files[0]);
        form_data.append('name1',"10000900055");
        form_data.append('name2',"10000900044");
        form_data.append('name3',"10000900033");
        form_data.append('name4',"10000900022");
        form_data.append('name5',"10000900011");
        console.log(form_data);
        $.ajax({
            type: "POST",
            url: '/ulploadfile',
            data: form_data,
            cache: false,
            processData: false,
            contentType: false,
            success: function(data){
                alert('success');
            }
            // dataType: 'json',
            // contentType: "application/json; charset=utf-8"
        }).done(function(data) {
            // alert('success1');
        });
    });

服务器端代码sn-p:

router.post('/ulploadfile', function(req, res, next) {
    var body = '';
    try {
        req.on('data', function (data) {
            body += data;
        });
        req.on('end', function () {
            var post = qs.parse(body);
            console.log(post);
            res.send("UPLOADING FILE RESPONSE");
        });
    } catch (e) {
        console.log(e);
        res.send("UPLOADING FILE RESPONSE ERRPR");
    } finally {
    }
});

更新 输出屏幕截图

所以我想知道如何从后端的请求对象中检索发布的数据。我想在不使用任何其他软件包的情况下做到这一点。

非常感谢您的帮助和建议。

【问题讨论】:

标签: ajax node.js file express multipartform-data


【解决方案1】:

POST请求中有一个很好的文件(多部分数据)模块,叫做multer

您可以在那里添加验证功能、目的地、不同的存储... 甚至还有插件multer-s3 用作存储。

router.post('/ulploadfile', upload.single('file_uplaoded'), function(req, res, next) {
  // req.file is the `file_uplaoded` file 
  // req.body will hold the text fields, if there were any 
})

【讨论】:

    猜你喜欢
    • 2019-01-14
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2020-05-06
    相关资源
    最近更新 更多