gpt4 book ai didi

javascript - 如何设置上传的文件名?

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:46 24 4
gpt4 key购买 nike

通过使用 'multer' ,我可以像这样请求图像文件。 enter image description here

并且这个文件存储在我设置的“上传”文件夹中。我的代码如下:

var multer  = require('multer')
var upload = multer({dest:'./uploads/'});
//var upload = multer({ storage: storage });
var app = express();
app.use(app.router);
app.post('/upload', upload.single('puzzle'), function (req, res, next) {
console.log(req.file);
});

但我想将我的文件名设置为“abc.png”而不是“abc”

我阅读了文档,发现了这一点

var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/uploads');
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now());
}
});

var upload = multer({ storage: storage });

所以我修改后的代码如下:

var multer  = require('multer')
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/uploads');
},
filename: function (req, file, cb) {
cb(file.filename+'.png', file);
}
});

var upload = multer({ storage: storage });
var app = express();
app.use(app.router);
app.post('/upload', upload.single('puzzle'), function (req, res, next) {
console.log(req.file);
});

但在这种情况下,会出现错误并显示 'Error: ENOENT, open '/uploads/puzzle-1449496743377' , not like the picture above...

我该如何解决这个问题?

我敢肯定,许多像我这样的新手开发人员会因为不友善的文档而遇到麻烦......

最佳答案

    var fs = require('fs');
var multer = require('multer')
//var uploader = multer({dest:'./uploads/'});

var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads/')
},
filename: function (req, file, cb) {
crypto.pseudoRandomBytes(16, function (err, raw) {
cb(null, raw.toString('hex') + Date.now() + '.png');
});
}
});
var upload = multer({ storage: storage });
var app = express();
app.use(app.router);
app.post('/upload', upload.single('puzzle'), function (req, res, next) {
console.log(req.file);
});

解决了,谢谢大家谢谢

关于javascript - 如何设置上传的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com