Загрузка большого двоичного объекта: URL-адрес -> имя файла — случайный UUID.Html

Программисты Html
Ответить
Anonymous
 Загрузка большого двоичного объекта: URL-адрес -> имя файла — случайный UUID.

Сообщение Anonymous »

Цель: я пытаюсь загрузить некоторый двоичный объект Blob на компьютер пользователя как файл с определенным именем (что более важно, с определенным расширением). my-filename.ext
Настройка: я использую URL.createObjectURL для создания URL-адреса blob:, вставляя его в .
Проблема: В результате имя загруженного файла иногда (см. подсказку ниже) представляет собой случайный UUID без расширения, а не имя файла, указанное через атрибут download. См. скриншот моих последних загрузок.
Безумная подсказка: На большинстве веб-сайтов, например. https://stackoverflow.com вставка этого кода в консоль разработчика работает и загружается с правильным именем файла. Но на нескольких веб-сайтах, включая https://saga.org, происходит сбой, загрузка файла со случайным именем.
Фрагмент кода: Создайте кнопку Загрузить, чтобы загрузить некоторые случайные данные в виде my-filename.ext — вставьте ее в консоль разработчика и нажмите кнопку «Загрузить».
function create_blob_url() {
var hexdata = "a8c7390b9102c748609de9f817ab"; // arbitrary data

var byteArray = new Uint8Array(hexdata.match(/.{2}/g)
.map(e => parseInt(e, 16)));
var blob = new Blob([byteArray], {type: "application/octet-stream"});
var url = window.URL.createObjectURL(blob);
return url;
}

function do_download() {
const link = document.createElement("a");
link.href = create_blob_url();
console.log('Loading URI: '+link.href);
link.download = "my-filename.ext";
document.body.appendChild(link);
link.click();
link.remove();
}

var btn = document.createElement('button');
btn.innerText = 'Download';
document.body.appendChild(btn);
btn.addEventListener('click', do_download);
btn.style = "position:fixed;z-index:2147483647;top:0;left:0";


Подробнее здесь: https://stackoverflow.com/questions/772 ... andom-uuid
Ответить

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

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

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

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

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