Загрузка ng2-файла ASP.NET Core MVC - прогресс загрузки чанка
Я использую ng2-file-upload
посылка ASP.NET Core
бэкенд.
https://github.com/valor-software/ng2-file-upload
Используя базовый пример, пытаемся проверить загрузку большого файла ~50MB.
Файл в конечном итоге загружается, но никакого прогресса / чанка не происходит. Это в основном загружает все сразу после сидения некоторое время.
Что мне нужно изменить, чтобы получить прогресс / загрузку чанка?
Компонент ng2:
import { Component, OnInit } from '@angular/core';
import { FileUploader } from 'ng2-file-upload';
@Component({
selector: 'fileupload',
templateUrl: './fileupload.component.html'
})
export class FileUploadComponent implements OnInit {
public uploader: FileUploader = new FileUploader({ url: '/api/purchaseorder/upload' });
ngOnInit() {
this.uploader.onCompleteItem = (item: any, response: any, status: any, headers: any) => {
console.log("ImageUpload:uploaded:", item, status);
};
}
public hasBaseDropZoneOver: boolean = false;
public hasAnotherDropZoneOver: boolean = false;
public fileOverBase(e: any): void {
this.hasBaseDropZoneOver = e;
}
public fileOverAnother(e: any): void {
this.hasAnotherDropZoneOver = e;
}
}
asp.net контроллер mvc / действие:
public ActionResult Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return NoContent();
}
// handle file here
return Ok();
}
1 ответ
Когда вы запрашиваете, чтобы IFormFile был передан в действие в качестве параметра, ему нужно будет загрузить весь файл перед обработкой действия. Вместо этого извлеките IFormFile из текущего запроса следующим образом:
public ActionResult Upload()
{
foreach (IFormFile file in Request.Form.Files)
{
if (file == null || file.Length == 0)
{
return NoContent();
}
// handle file here
var stream = file.OpenReadStream();
{
return Ok();
}