Предварительный просмотр добавленного локального изображения/видео в серверном приложении blazor без его загрузки на серC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Предварительный просмотр добавленного локального изображения/видео в серверном приложении blazor без его загрузки на сер

Сообщение Anonymous »

Я пытаюсь создать компонент загрузки, который просматривает видео или изображение перед его фактической загрузкой.

Код: Выделить всё

int videoProgress = 0;
List videos = default!;
FileInfo? video;
string? videoUrl;
private async Task OnVideoCompletedAsync(IEnumerable _videos) {
videos = _videos.ToList();
Console.WriteLine($"[EVENT] Video Dropped : {videos.Count()}");
videos.ForEach(x => Console.WriteLine($"Name: {x.Name}, Size: {x.Size/1000000f} mb"));
video = videos[0].LocalFile;
videoUrl = await embedFiles(video, "video/mp4");
videoProgress = 0;
StateHasChanged();
}

private async Task embedFiles(FileInfo? fileInfo, string format) {
if(fileInfo == null) {
return null;
}
byte[] bytes = new byte[fileInfo.Length];
using(FileStream fileStream = fileInfo.OpenRead()) {
await fileStream.ReadAsync(bytes);
}
string url = await JSRuntime.InvokeAsync("bytesToDataURL", bytes, format);
Console.WriteLine($"[INFO] File URLs : {url}");
return url;
}

Код: Выделить всё

async function bytesToDataURL(bytes, format) {
const blob = new Blob([new Uint8Array(bytes)], format);
let url = URL.createObjectURL(blob);
console.log(url);
return url;
}
Но если я правильно понимаю, это загружает видео на сервер, а затем ему придется отправить его обратно клиенту в виде байтов, чтобы он создал URL-адрес большого двоичного объекта. Это подходит для файлов меньшего размера, но я считаю, что этот путь вперед и назад расточителен, когда у вас очень большие файлы. Я мог бы напрямую присоединить обработчик событий к FluentInputFile в JS, но это нарушило бы работу реальных обработчиков событий.


Подробнее здесь: https://stackoverflow.com/questions/793 ... -uploading
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Предварительный просмотр добавленного локального изображения/видео в серверном приложении blazor без его загрузки на сер
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Проблема с распространением XtraReport с помощью докера в серверном приложении blazor
    Anonymous » » в форуме C#
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Соединение SignalR неожиданно закрывается в серверном приложении Blazor
    Anonymous » » в форуме C#
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous
  • Parallel.ForEachAsync в серверном приложении Blazor
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Ошибка приведения объекта типа в серверном приложении Blazor в сеансе .NET 6.
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»