无法使用 multer 获取临时文件路径

cannot get tempfilepath with multer

使用 fileupload 我们可以获取临时文件路径,但是使用 multer 可以获取临时文件路径吗?我想使用临时文件路径将文件上传到 cloudinary。这是我的代码。

const storage = multer.diskStorage({
destination: (req, file, cb)=>{
    cb(null, 'uploads')
},
filename: (req, file, cb)=>{
    cb(null, Date.now() + file.originalname)
},
useTempFiles: true
})

const upload = multer({storage});

app.post("/upload", upload.single('photo'), (req, res, next)=>{
let fileinfo = req.file;
console.log(fileinfo);
cloudinary.uploader.upload(fileinfo.tempFilePath,{width: 70, height: 90,           crop: "fit"}, (err,result)=>{
        console.error(err);
        console.log(result.url);
});
})
    const storage = multer.diskStorage({
filename: (req, file, cb)=>{
 cb(null, Date.now() + file.originalname)
}
})

const upload = multer({storage});

app.post("/upload", upload.single('photo'), (req, res, 
next)=>{
let fileinfo = req.file;
console.log(fileinfo);
cloudinary.uploader.upload(fileinfo.path,{width: 70, 
height: 90,crop: "fit"}, (err,result)=>{
    console.error(err);
    console.log(result.url);
});
})

对您的代码进行此更改并尝试此操作

Multer 允许您在存储上传的文件之前访问它们。

但是,如果您想像在 PHP 中那样存储和访问文件,您应该使用 Multer 的 DiskStorage 选项。

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '/tmp/my-uploads')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
})

diskStorage 接受的两个参数都是函数。一个函数确定上传文件夹,另一个函数确定文件名。