如何使用Node.js中的multer和Google Drive API将表单中的多部分数据上传到Google Drive?

时间:2019-12-22 16:04:24

标签: node.js multer

当前图像已存储在我的上传文件夹中。由于我是node.js和multer的新手,有人可以指导我如何将这些图像存储到Google驱动器吗? https://developers.google.com/drive/api/v3/quickstart/nodejs 通过这些链接但不知道如何在我的项目中实现它。此链接中提供的代码将图像上传到Google驱动器,但是文件路径必须经过编码。谁能帮我一下。我是后端开发的初学者。 这是我的代码供参考

     ```
     const express = require("express");
     const router = express.Router();
     const multer = require("multer");
     const path = require("path");
     //set storage engine
     const storage = multer.diskStorage({
     destination: "./public/uploads/",
     filename: function(req, file, cb) {
     cb(null,file.fieldname + "-" + Date.now() + path.extname(file.originalname));
     }
     });
     //init upload
     const upload = multer({
     storage: storage,
     limits: { fileSize: 10000000 },
     fileFilter: function(req, file, cb) {
     checkFileType(file, cb);
     }
     }).single("myImage");

     //check file type
     function checkFileType(file, cb) {
     //Allowed ext
     const fileTypes = /jpeg|jpg|png|gif/;
     //check ext
     const extname = fileTypes.test(
     path.extname(file.originalname).toLocaleLowerCase()
     );
     //check mime
     const mimetype = fileTypes.test(file.mimetype);

     if (mimetype && extname) {
       return cb(null, true);
     } else {
     cb("Error: Images Only!");
     }
     }

     router.get("/", (req, res) => res.render("./index"));

     router.post("/upload", (req, res) => {
     upload(req, res, err => {
     if (err) {
      res.render("index", {
      msg: err
      });
     } else {
     //   console.log(req.file);
     //   res.send("test");
     if (req.file == undefined) {
       res.render("index", {
       msg: "Error: No File Selected!"
      });
      } else {
      res.render("index", {
      msg: "File uploaded!",
      file: `uploads/${req.file.filename}`
       });
      }
     }
     });
     });

     module.exports = router;
     ```

0 个答案:

没有答案