【发布时间】:2020-06-06 17:19:40
【问题描述】:
当我上传视频文件时,它在本地(开发模式)上正常工作。但是当我将它上传到服务器(产品)时,它不起作用。
这是服务:
uploadVideo(id: String, file, imageId) {
let formData = new FormData();
formData.append('video', file);
formData.append('imageId', imageId);
return this.http.post<any>(`.../${id}/video`, formData, {reportProgress: true, observe: 'events'})
.pipe(map(response => {
return response;
}));
}
这是组件 ->
this.arrivalProductService.uploadVideo(this.data.id, this.selectedFile, imageId)
.pipe(
map((event) => {
console.log('event', event);
if(event.type === HttpEventType.UploadProgress){
const percentDone = Math.round(100 * event.loaded / event.total);
return { status: 'progress', message: percentDone };
}
if (event.type === HttpEventType.Response) {
return event.body;
}
}),
catchError(error => {
return throwError(error);
}),
finalize(() => {
console.log('completed');
})
)
.subscribe(
data => {
....
})
如果我在 map() 上记录事件,则在本地开发上它会返回所有进度:例如 ({status: 'progress', message: 0}, ... 等),在生产上它什么也不返回.. 我不明白代码有什么问题..请帮助我
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: angular typescript file-upload progress-bar production