node.js - Node.js Multer 文件名
问题描述
我想通过输入的值而不是字段名来自定义我的应用程序的文件名。
换句话说,我想将 file.filename 更改为req.body.my_field之类的东西,而my_field是输入的名称。
最后,我想要这样的东西:
"filename": "value_of_my_field-1530606094020.jpg",
"path": "uploads\\value_of_my_field-1530606094020.jpg",
注意到 my_field 的值出现在我的控制台上。
我需要一些帮助才能做到这一点。
这是我的代码:
var express = require('express')
var multer = require('multer')
const path = require('path')
// Init app
var app = express()
const port= 3000
// Set storage engine
const storage = multer.diskStorage({
destination: './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:1000000},
});
app.post('/upload', upload.single('myImage'), function (req, res, next) {
if(req.file == undefined){
res.json({'Error': 'No File Selected!'});
} else {
res.json(req.file);
console.log(req.body.my_field);
}
})
app.listen(port, () => console.log('server started on port '+ port));
提前致谢
解决方案
我不太确定您的问题是什么,因为您的代码当前似乎正在执行您希望它执行的操作(使用时间戳保存文件)。如果你想摆脱req.body.my_field
删除行的记录console.log(req.body.my_field);
推荐阅读
- c++ - 使用 OpenCV\C++ 裁剪图像
- gpu - 带有 GPU_HIST 的 XGBOOST GridSearchCV 同时使用 GPU 和 CPU
- r - 我需要一种在 R 中的日期戳之间填充数据的方法
- python - AttributeError:“scoped_session”对象没有属性“get”
- python - 如何使用下面给出的 pandas 数据框在 python 中使用 seaborn 模块制作热图?
- event-handling - 为什么在基于编排的 Sagas 中需要命令?
- ios - 等待 ios speechSynthesizer.speak 完成话语
- wpf - DotNetCore 3.1 WPF 网格布局管理器问题
- javascript - 使用 React 钩子制作列表
- pandas - DataFrame where 和 query 的区别