Как загрузить видеофайлы в виде чанков в угловых (версия 8) - PullRequest
1 голос
/ 06 октября 2019

Я хочу загружать большие видеофайлы в виде фрагментов на сервер с помощью углового HttpClient в угловом формате с веб-API aspnetcore, поскольку у меня возникают проблемы с ограничением размера файла при многоэтапной загрузке файлов.

1 Ответ

0 голосов
/ 06 октября 2019

Возможный подход к фрагментам видеофайлов в угловом формате:

Представление HTML содержит ввод файла типа, который вызывает функцию на component.ts при загрузке файла. Функция компонента должна проверять тип файла - это видео, а затем разбивать его на небольшие части. Внешняя служба может использоваться для управления и отправки каждого чанка в API. Затем бэкэнд должен отвечать за получение каждого чанка и объединить его в окончательный файл.

Вот простой пример, иллюстрирующий программный процесс от пользовательского интерфейса до API. Сценарии очень простые, но они показывают поток. Вы должны реализовать проверку файлов, попробовать / кэширование и другие улучшения, чтобы сделать его безопасным.

component.html

<input type="file" (change)="fileSelected($event)" />

component.ts

async fileSelected(file) {
    const chunkSize = 40000;

    for( let offset = 0; offset < file.size; offset += chunkSize ){
        const chunk = file.slice( offset, offset + chunkSize );
        const apiResponse = await this.apiService.sendChunk( chunk, offset );
    }
}

service.ts

sendChunk( chunk, offset ) {
   const APIurl = 'http://myapi.com';
   const data = {
       chunk: chunk,
       offset: offset
   };
   return this.http.post(APIurl, data);
}

Несколько ссылок на нативный javascript с дополнительными реализациями: link1 и link2

...