angular 2 - загрузка файла с использованием formdata на экспресс-сервер - с использованием multer - PullRequest
0 голосов
/ 27 августа 2018

У меня проблемы с созданием кода загрузки этого файла для angular. РЕДАКТИРОВАТЬ: В почтальоне я успешно загрузить файл. только угловой код дает сбой. Код экспресс-маршрутизатора (uploadRouter):

uploadRouter.route('/')
.post(upload.single('txtFileFilter'), (req,res)=>{
res.statusCode = 200;
res.setHeader('Content-Type','application/json');
res.json(req.file);
path = req.file.path;
console.log('upload completed for '+path);

})

app.use('/api/txtupload', uploadRouter)

Угловой код обслуживания:

pushFileToStorage(file: File): Observable<HttpEvent<{}>> {
const formdata: FormData = new FormData();
formdata.append('file', file);
const req = new HttpRequest('POST', 'http://localhost:8080/api/txtupload', formdata, {
  reportProgress: true,
  responseType: 'text'
});
return this.http.request(req);

}

Код компонента:

 upload() {
this.progress.percentage = 0;

this.currentFileUpload = this.selectedFiles.item(0);
this.uploadService.pushFileToStorage(this.currentFileUpload).subscribe(event => {
  if (event.type === HttpEventType.UploadProgress) {
    this.progress.percentage = Math.round(100 * event.loaded / event.total);
  } else if (event instanceof HttpResponse) {
    console.log('File is completely uploaded!');
  }
});
this.selectedFiles = undefined;

}

При тестировании я получаю POST http://localhost:8080/api/txtupload 500 (Внутренняя ошибка сервера) и ОШИБКУ HttpErrorResponse {заголовки: HttpHeaders, status: 500, statusText: «Внутренняя ошибка сервера», URL: «http://localhost:8080/api/txtupload", хорошо: ложь,…}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...