【问题标题】:upload multiple files with multer?用multer上传多个文件?
【发布时间】:2019-01-26 23:22:44
【问题描述】:

我只是想不出为什么我的代码在下面有什么问题。我尝试上传多个文件。 问题是我有一个“意外的领域” 我可以让它上传单个文件就好了,但我不能让它上传多个文件。那么这里有什么问题呢?

html

<input id="file" type="file" class="form-control" placeholder="Imagen" name="image" multiple>

component.js

var payload = new FormData();
var files =  $('#file')[0].files

        for (key in $scope.producto) {
            payload.append(key, $scope.producto[key])
            console.log($scope.producto[key])
        }


     if (files.length > 0) {

            for (var i = 0; i < files.length; i++) {
                    var file = files[i];
                    console.log(file)
                    console.log(files.length)
                    payload.append('image', file);
                }
            }
       $http.post('http://localhost:5001/api/v1/articles', payload, {
            transformRequest: angular.identity,
            headers: { "Content-Type": undefined },
        }).then(function (response) {
            $location.path("/")
        })

这是服务器部分:

const multer = require('multer')
const storage = multer.diskStorage({
    destination : function(req, file, cb){
        cb(null, './uploads/');
    },
filename : function(req, file, cb){
    cb(null, new Date().toISOString() + file.originalname)
}

})

const upload = multer({storage : storage, limits: {
    fileSize : 1024 * 1024 * 5 
}})


.post('/api/v1/articles/', upload.array('image', 2 ), controllerArticle.postArticles)

controllerArticle.js

function postArticles(req, res) {
    // console.log(req.file)
if (req.file) {

const nvo = new articulos({
    name: req.body.name,
    price: req.body.price,
    condition: req.body.condition,
    brand: req.body.brand,
    productImage: req.file.path
})
nvo.save((err, productStored) => {
    if (err) res.status(500)

    res.status(200).send({ nvo: productStored })
})
}
}

到目前为止我已经尝试过:

把upload.array()改成upload.any(),还是不行。。 有什么帮助吗?谢谢!

【问题讨论】:

    标签: javascript angularjs node.js express multer


    【解决方案1】:

    已经解决...问题出在控制器上。 是 req.files 不是 req.file (单数)。 如果我只需要上传一个文件,那就是 req.file,而要上传多个文件是 req.files。

    【讨论】:

    • 哇...遇到了完全相同的问题
    猜你喜欢
    • 2020-05-31
    • 2017-01-13
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多