无法使用 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
接受的两个参数都是函数。一个函数确定上传文件夹,另一个函数确定文件名。
使用 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
接受的两个参数都是函数。一个函数确定上传文件夹,另一个函数确定文件名。