最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

使用Node Js以multer到cloudinary在一个表单中上传不同的文件类型

IT培训 admin 4浏览 0评论

使用Node Js以multer到cloudinary在一个表单中上传不同的文件类型

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

这是形式:

<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的链接

但我不能显示它,它只显示我这托盘时(不能GET /tmp/1551115731848chTestfile.pdf)

回答如下:

尝试使用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);
                });
            });
        }

使用Node Js以multer到cloudinary在一个表单中上传不同的文件类型

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

这是形式:

<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的链接

但我不能显示它,它只显示我这托盘时(不能GET /tmp/1551115731848chTestfile.pdf)

回答如下:

尝试使用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);
                });
            });
        }
发布评论

评论列表 (0)

  1. 暂无评论