【问题标题】:upload different file types in one form useing NodeJs and multer to cloudinary使用 Node Js 和 multer 以一种形式将不同的文件类型上传到 cloudinary
【发布时间】:2019-07-19 04:45:42
【问题描述】:

我正在尝试使用 .fields(fields) 方法在 NodeJs 中使用 multer 和 cloudinary 以一种形式上传两个不同的文件,如下所示:

这是表格:

<form action="/requestsList" method="POST" enctype="multipart/form-data">
  <div class="form-group">
    <label for ="prop">Upload Proposal:</label> <input id="prop" name ="prop" type="file" accept="application/pdf">
</div>
<div class="form-group">
    <label for ="cv">Upload CV:</label> <input id="cv" name ="cv" type="file" accept="application/pdf">
</div>
<div class="form-group">
    <button class="btn btn-lg btn-primary btn-block">Submit!</button>
</div>

这是路线:

router.post("/requestsList" , middleware.isLoggedIn , upload.fields([{ name: "prop" },{ name: "cv" }]) , function(req , res){
cloudinary.uploader.upload(req.files.path, function(result) {
    var Name = req.body.name ;
    var KSUID = req.body.id ;
    var Email = req.body.email ;
    var PNumber = req.body.phone ;

    var prop = req.files["prop"][0].path;

    var cv = req.files["cv"][0].path;

    var author = {
        id: req.user._id,
        username: req.user.username,
    };
var newRequest = {Name: Name , KSUID: KSUID , Email: Email , PhonenNumber: PNumber , Proposal: prop , Cv: cv ,author: author} ;

Request.create(newRequest , function(err , newlyCreated){
   if(err){
       console.log(err);
       req.flash("error" , err.message);
       res.redirect("back");
   } else{
       console.log(newlyCreated);
       req.flash("success" , "Request Successfully Sent");
       res.redirect("/home") ;
   }
});
});
});

我希望它给我一个链接,就像我使用 .single(fieldname) 和 result.secure_url 时一样

但我无法显示它,它只在我托盘时显示(无法获取 /tmp/1551115731848chTestfile.pdf)

【问题讨论】:

    标签: html node.js express multer cloudinary


    【解决方案1】:

    尝试使用 multer 的 'any' 方法并通过 forEach 获取文件的路径。

    类似这样的:

    app.post('/', upload.any([{ name: "prop" }, { name: "cv" }]), (req, res) => {
            var files = req.files;
            if (files) {
                files.forEach(function (file) {
                   cloudinary.uploader.upload(file.path, function (result) {
                   console.log(result);
                    });
                });
            }
    

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 2021-08-29
      • 2021-09-02
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2020-09-04
      相关资源
      最近更新 更多