无法使用 multer 将名称更改为上传的文件
can't change name to uploaded file using multer
我正在尝试使用 multer
更改我上传到服务器的图像的名称,这为文件提供了一个随机名称。
我使用 multer.diskStorage
方法按照文档中的描述进行操作,但它一直使用随机名称保存文件
代码:
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null,'./uploads/')
},
fileName: (req,file,cb) => {
cb(null, file.originalname)
}
})
const upload = multer({storage: storage})
router.post('/', upload.single('carImage') ,(req, res) => {
res.send(req.file);
}
回应:
{
fieldname: 'carImage',
originalname: 'testOCR8.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './uploads/',
filename: '229f70c20e5550dbe638db49791ef17d',
path: 'uploads/229f70c20e5550dbe638db49791ef17d',
size: 1712380
}
尝试使用 StorageMulter 的不同方法。尝试以下 -
var StorageMulter = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./temp");
},
filename: function(req, file, callback) {
var uploadFileName = "x.jpg"; //Manipulate this variable accordingly
callback(null, uploadFileName);
}
});
var upload = multer({
storage: StorageMulter
});
app.post("/api/uploaddocument", function(req, res) {
upload(req, res, function(err) {
if (err) {
return res.end("Something went wrong!"+ err);
}
});
});
im uploading to the server using multer which gives the file a random name
你打错了。它是 filename
而不是 fileName
。这是 the docs 的标准行为。
filename
is used to determine what the file should be named inside the folder. If no filename
is given, each file will be given a random name that doesn't include any file extension.
所以,您的代码应该是
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null,'./uploads/')
},
filename: (req,file,cb) => { // notice the change 'filename'
cb(null, file.originalname)
}
});
const upload = multer({storage: storage});
我正在尝试使用 multer
更改我上传到服务器的图像的名称,这为文件提供了一个随机名称。
我使用 multer.diskStorage
方法按照文档中的描述进行操作,但它一直使用随机名称保存文件
代码:
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null,'./uploads/')
},
fileName: (req,file,cb) => {
cb(null, file.originalname)
}
})
const upload = multer({storage: storage})
router.post('/', upload.single('carImage') ,(req, res) => {
res.send(req.file);
}
回应:
{
fieldname: 'carImage',
originalname: 'testOCR8.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './uploads/',
filename: '229f70c20e5550dbe638db49791ef17d',
path: 'uploads/229f70c20e5550dbe638db49791ef17d',
size: 1712380
}
尝试使用 StorageMulter 的不同方法。尝试以下 -
var StorageMulter = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./temp");
},
filename: function(req, file, callback) {
var uploadFileName = "x.jpg"; //Manipulate this variable accordingly
callback(null, uploadFileName);
}
});
var upload = multer({
storage: StorageMulter
});
app.post("/api/uploaddocument", function(req, res) {
upload(req, res, function(err) {
if (err) {
return res.end("Something went wrong!"+ err);
}
});
});
im uploading to the server using multer which gives the file a random name
你打错了。它是 filename
而不是 fileName
。这是 the docs 的标准行为。
filename
is used to determine what the file should be named inside the folder. If nofilename
is given, each file will be given a random name that doesn't include any file extension.
所以,您的代码应该是
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null,'./uploads/')
},
filename: (req,file,cb) => { // notice the change 'filename'
cb(null, file.originalname)
}
});
const upload = multer({storage: storage});