【发布时间】:2014-10-31 03:11:45
【问题描述】:
我正在尝试使用 Multer package 上传任何文件。当我在 server.js 文件中使用以下代码时,它工作正常。
var express = require('express'),
app = express(),
multer = require('multer');
app.configure(function () {
app.use(multer({
dest: './static/uploads/',
rename: function (fieldname, filename) {
return filename.replace(/\W+/g, '-').toLowerCase();
}
}));
app.use(express.static(__dirname + '/static'));
});
app.post('/api/upload', function (req, res) {
res.send({image: true, file: req.files.userFile.originalname, savedAs: req.files.userFile.name});
});
var server = app.listen(3000, function () {
console.log('listening on port %d', server.address().port);
});
我想要的是将文件存储在不同的位置。我曾尝试以下代码,但它对我不起作用。
var express = require('express'),
app = express(),
multer = require('multer');
app.configure(function () {
app.use(multer({
//dest: './static/uploads/',
rename: function (fieldname, filename) {
return filename.replace(/\W+/g, '-').toLowerCase();
}
}));
app.use(express.static(__dirname + '/static'));
});
app.post('/api/pdf', function (req, res) {
app.use(multer({ dest: './static/pdf/'}));
res.send({image: true, file: req.files.userFile.originalname, savedAs: req.files.userFile.name});
});
app.post('/api/image', function (req, res) {
app.use(multer({ dest: './static/image/'}));
res.send({image: true, file: req.files.userFile.originalname, savedAs: req.files.userFile.name});
});
app.post('/api/video', function (req, res) {
app.use(multer({ dest: './static/video/'}));
res.send({image: true, file: req.files.userFile.originalname, savedAs: req.files.userFile.name});
});
var server = app.listen(3000, function () {
console.log('listening on port %d', server.address().port);
});
意思是,如果我点击http://localhost:3000/api/pdf,文件应该存储在'pdf'文件夹中,如果我点击http://localhost:3000/api/video,文件应该存储在'video'文件夹中。
有什么办法可以达到这个目的吗?
提前谢谢你。
【问题讨论】:
-
目前还不能使用 'multer'。 github.com/expressjs/multer/issues/58这是我从“所有者”那里得到的回复。