У меня есть Multer загрузить в моем веб-интерфейсе:Предоставлять модифицированную закачанный файл как скачать AngularJS NodeJS
<form id="uploadForm" ng-submit="upload.submit">
<input id="file" type="file" name="file" >
<input type="submit" value="Upload" id="submit" class="btn btn-primary" >
</form>
в мой контроллер загрузки:
this.submit = function(){
$http.post('/upload').then(function success(response){
}, function error(response){
})
}
загрузка NodeJS с Multer:
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../uploads);
},
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
var upload = multer({ storage : storage});
router.post('/upload', upload.single('file'), function(req, res, next){
if(!req.file) {
res.status(400);
res.send({error: 'Datei nicht vorhanden'});
}
res.send({filename: req.file.filename});
}) ;
Как я могу получить это имя файла в запросе router.get
?
В моем NodeJS я сохраняю файл на сервере, поэтому я знаю этот путь. (../uploads/)
Я хочу предоставить загруженный файл для загрузки клиенту снова с помощью <a href="http://<path to file>">Download</a>
, но как получить имя файла, загруженного пользователем? Чтобы эта загрузка работала?
Благодарим вас заблаговременно.
Если вы используете угловой, вам нужно избавиться от «действия», «метода», «enctype». Обращайтесь с представлением формы в своем контроллере, и там вы получите ответ. – yBrodsky
Я использую контроллер, добавив его выше. – nolags
Я имел в виду ваш контроллер angularjs. В любом случае в вашей функции backend/upload вы должны вернуть имя загруженного файла. – yBrodsky