Показать сообщение отдельно
  #1 (permalink)  
Старый 27.06.2019, 13:06
Интересующийся
Отправить личное сообщение для NiOl Посмотреть профиль Найти все сообщения от NiOl
 
Регистрация: 11.06.2017
Сообщений: 15

Сохранение двоичных данных в файл
Возникла ошибка при сохранении содержимого Uint8Array на диск, вместо двоичных данных получаю текст из десятичных представлений.

Сделано на работающем примере, с тем отличием, что в рабочем, чужом, скрипте, использовался несуществующий МИМЕ-тип "image/retrocomputer". Использовтать рабочий скрипт не могу по 2м причинам, одна - этическая, вторая - я не нашел описания конструкции
типа "onload = () => {let dat...}". яндекс вообще об выделенную часть споткнулся и мне пришлось чистить куки )))
(если кто может кинуть правильным названием, "= () =>" - как это называется, что бы можно было искать описание - спаибо!)

Вот вырезал саму "сохранялку", прошу найти ошибку!

ззы: На выходе получаю файл с содержимым "255254253252251250 ... 228227226225224"

<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
</head>
<body>
<a id="FileSaver" style="display:none;"></a>
<p>Test for bin files saving...</p>

<script> 
  const FS=document.getElementById("FileSaver");
  var bf=new Uint8Array(32);	// Буфер двоичных данных для примера

  for (i=0;i<bf.length;i++)
    {bf[i]=~i;}			// Кидаем в буфер некие "полезные" данные

  save(bf);

  function save(bf) {
    alert('size:'+bf.length); 	// Проверяем, не потерян ли массив?

    let blb=new Blob(bf,{type:'application/octet-stream'});
    const Data=URL.createObjectURL(blb);
    FS.href=Data;
    FS.download="probe.bin";
    FS.click();
    }
</script>
</body>
</html>


зы: линк использую статический, т.к. он "многоразвого использования", а обычно у всех создается дом-объект, который тут же удаляется, но уверен, проблема не в этом.

Последний раз редактировалось NiOl, 27.06.2019 в 13:09. Причина: добавил значение проблемного результата
Ответить с цитированием