Файл поврежден в угловом формате с помощью модуля angular / http - PullRequest
0 голосов
/ 04 сентября 2018

Я использую File Saver и Angular / HTTP. Загрузка, удаление в s3 ведро работает отлично, но когда я загружаю файл, он показывает, поврежден и размер файла очень меньше (50B)

dowlnoad(attachment){
 var filename = attachment.uploadname;
 console.log(filename);
 this.service.downloadFile(filename)
 .subscribe(
    data => saveAs( new Blob([data], { type: 'application/octet-stream' 
    }),filename),
    error=> console.error(error)
)
 return false;

}

1 Ответ

0 голосов
/ 04 сентября 2018
downloadFile(file: string){
var body = {filename:file};

let headers = new Headers({ 'Content-Type': 'application/json', 'Accept': 'application/pdf' });
let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob });

 this.http.post(`${environment.queryApi}/api/dfile`, body, options).toPromise()
.then(response => this.saveToFileSystem(response,body));;
}

private saveToFileSystem(response,body) {
// const contentDispositionHeader: string = response.headers.get('Content-Disposition');
// const parts: string[] = contentDispositionHeader.split(';');
// const filename = parts[1].split('=')[1];
const blob = new Blob([response._body], { type: 'application/pdf' });
saveAs(blob, body.filename);
return false;
}

[response._body] решил проблему

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