Ошибка, которую я получаю с этим кодом, - это
Не удается POST/img/upload/'
Код:
app.post('/img/upload/',[multer({ dest: __dirname+'/www/images/new/',
rename: function (fieldname, filename, req, res) {
return filename + '_ORIGINAL';
},
onFileUploadStart: function (file, req, res) {
console.log(file.fieldname + ' is starting ...')
},
onFileUploadData: function (file, data, req, res) {
console.log(data.length + ' of ' + file.fieldname + ' arrived')
},
onFileUploadComplete: function (file, req, res) {
console.log(file.fieldname + ' uploaded to ' + file.path)
},
onError: function (error, next) {
console.log(error)
next(error)
}
})]);
Запрос контроллера на этот API:
var data = new FormData;
data.append("file", files[0]);
$http({
url: 'http://52.25.181.109/img/upload/',
method: "POST",
data : data,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
$scope.hide_u();
console.log(data);
}).error(function (data, status, headers, config) {
$scope.hide_u();
console.log(data);
});
Код выполняется с ошибкой. Как это исправить?
Попробуйте изменить заголовок: headers: {'Content-Type': 'multipart/form-data'}
Multer обслуживает только многопрофильные запросы. Маршрут не будет действителен для "application/x-www-form-urlencoded". Создайте свой сайт:
Средство Node.js для обработки
multipart/form-data
.
Обновление: я настроил сервер. следующее должно работать, измените обработчик сервера:
app.use(multer({ dest: __dirname+'/www/images/new/'}));
app.post("/img/upload/", function() {console.log("request rec.")});
Моя тестовая форма: "<form enctype=\"multipart/form-data\">"
Предложение: попробуйте удалить заголовок.