Загрузка 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();
}
Другие вопросы по тегам