Найти в Дзене
Хикмет Садигзаде

Преобразование Blob в File с помощью JavaScript

Оглавление

Порой возникает необходимость преобразовать объект Blob в объект File. Такая ситуация может возникнуть, например, при использовании метода blob() для объекта ответа на выборку. В этом небольшом уроке мы рассмотрим, как осуществить такое преобразование.

Fetch

Приведенный ниже скрипт преобразует ответ на выборку в Blob.

-2

Но что, если нам нужен File?

Основное отличие между Blob и File заключается в наличии у File дополнительных атрибутов, таких как name (имя файла) и свойство LastModified.

Однако File наследует все остальные атрибуты от Blob. Мы можем рассмотреть два варианта: добавить эти два атрибута к объекту Blob, чтобы он стал похожим на File, или же создать настоящий объект File.

Создание Blob похожего на File

Давайте добавим два свойства в наш экземпляр Blob (из нашего запроса на выборку выше).

-3

Наш Blob теперь выглядит как File, но это не настоящий File, это можно легко проверить:

-4

Это может вызвать проблемы, если мы используем это со сторонним сценарием, которому требуется реальный объект File.

Создание настоящего File

Это лучший подход, он даст нам настоящий объект File.

-5

Теперь, когда мы проверим экземпляр, это будет File.

-6

Но поскольку он наследуется от Blob, он также будет Blob.

-7

Почему мы обсудили метод «создание Blob похожего на File»? Поскольку IE11 не поддерживает конструктор файлов, поэтому, если вам все еще нужна поддержка Internet Explorer, это то, что вам нужно.