Используйте file.stream
, потому что у вас уже есть доступный объект File
.
Не используйте createObjectURL
(т.е. ваш пример с fetch
), если у вас уже есть File
или Stream
доступно, потому что вы просто создаете ненужную работу для браузера.
(я предполагаю, что JavaScript не определяет время жизни или как управлять состоянием, внешние ресурсы, которые браузеры могут создавать «безопасные» копии данных в этом случае, вместо того, чтобы Response
'Stream
совместно использовали один и тот же базовый байтовый буфер) .
Как вам интересно : функция createObjectURL
используется для генерации строкового URI , который можно передать другим объектам, которые не могут работать с объектом Stream
или File
, например, <video>
элемента * Атрибут 1023 * - это то, как вы можете мгновенно показать предварительный просмотр файла изображения или видео из <input type="file" />
без необходимости делать что-либо неэффективное, например, использовать кодированный Base64 data:
URI или сначала загрузить файл на свой веб-сервер. .
Кроме того, когда вы используете createObjectURL
, у вас есть для вызова revokeObjectURL()
, иначе у вас будет утечка памяти в вашем браузере, пока ваша страница не будет выгружена.