Node.js中使用Multer修改文件名失效问题排查与解决
Multer自定义文件名不生效问题排查与解决
我在Node.js项目中使用Multer配置diskStorage的filename回调,期望生成「时间戳-Applicant-计数器」格式的自定义文件名,但实际文件保存后却是「img-时间戳.后缀」这类默认格式,完全没有包含预期的自定义内容。
检查完整代码后发现,问题并非出在Multer的配置上,而是base64-to-image的配置参数有误:配置对象中的参数名被写成了filename,而该库要求的正确参数名是fileName,修正这个拼写错误后,自定义文件名功能立即正常生效。
初始Multer配置代码
var i = 0; storage = multer.diskStorage({ destination: (req, file, cb) => { const dir = './uploads/' console.log(file) return cb(null, dir) }, filename: (req, file, cb) => { i++; cb(null, Date.now() + '-' + 'Applicant' + '-' + i); } })
出错的base64-to-image配置代码
var optionaObj = { 'filename': imageName, };
修正后的base64-to-image配置代码
var optionaObj = { 'fileName': imageName, };
内容的提问来源于stack exchange,提问作者Eder Savillon
相关产品推荐
相关产品推荐

