Próbuję przesłać dowolny plik, używając Multer package. Działa to dobrze, gdy używam następującego kodu w pliku server.js
.Jak ustawić różne miejsca docelowe w nodejach za pomocą multera?
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);
});
Co chcę, to przechowywać plik w różnych lokalizacjach. Próbowałem podążać za kodem, ale to nie działa dla mnie.
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);
});
Znaczy, jeśli uderzę http://localhost:3000/api/pdf
plik należy zapisać w folderze „pdf”, jeśli uderzę http://localhost:3000/api/video
plik należy zapisać w folderze „wideo”.
Czy jest jakiś sposób osiągnięcia tego celu?
Z góry dziękuję.
od teraz nie jest możliwe z "multer". https://github.com/expressjs/multer/issues/58 to jest odpowiedź, którą otrzymałem od "właściciela". – AkshayP
Rozwiązane - https://github.com/jpfluger/multer/blob/examples/multer-upload-files-to-different-directories.md – AkshayP