我試圖上傳任何文件使用Multer package。當我在我的server.js
文件中使用以下代碼時,它工作正常。如何使用multer在nodejs中設置不同的目的地?
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
文件應在「視頻」文件夾中存儲。
有什麼辦法可以達到這個目的嗎?
預先感謝您。
截至目前,'multer'是不可能的。 https://github.com/expressjs/multer/issues/58這是我從'所有者'得到的答覆。 – AkshayP 2014-09-11 07:08:55
解決 - https://github.com/jpfluger/multer/blob/examples/multer-upload-files-to-different-directories.md – AkshayP 2014-09-29 05:08:26