//接收上传文件并自定义保存路径
router.post('/upload', (req, res) => {
//创建formidable表单解析对象
const form = new formidable.IncomingForm();
//保留上传文件的后缀名字
form.keepExtensions = true;
//设置上传文件的保存路径
form.uploadDir = path.join(__dirname, 'uploads');
//解析客户端传递过来的formData对象
form.parse(req, (err, fields, files) => {
oldPath = files.file.newFilename;
console.log(fields);
oldPath = path.join(__dirname, './uploads/' + oldPath);
var name = path.join(__dirname, './' + fields.url + '/' + files.file.originalFilename);
if (!name.includes(__dirname))//规定在当前路径内,防止滥传路径出现问题
res.send('路径异常');
dirExists(path.join(__dirname, './' + fields.url)).then(() => {
fs.rename(oldPath, name, function (err) {
if (err) {
console.error("改名失败" + err);
}
})
res.send(fields);
})
})
})
测试
url为需要保存的路径