fileioNoMin.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * БИБЛИОТЕКА ДЛЯ ВВОДА-ВЫВОДА ФАЙЛОВ В БРАУЗЕРЕ
  3. * Copyright © 2022, А.М.Гольдин. ISC license
  4. *
  5. * Руководство по использованию - см. файл readme.md
  6. */
  7. "use strict";
  8. const io = {
  9. get: (buttonID, funcOnClick, accept) => {
  10. const e = document.createElement("input");
  11. e.style.display = "none";
  12. e.type = "file";
  13. if (accept) e.accept = accept;
  14. e.onchange = () => {
  15. let reader = new FileReader();
  16. reader.onload = e => funcOnClick(new Uint8Array(e.target.result));
  17. reader.onerror = er => alert("Ошибка чтения файла");
  18. reader.readAsArrayBuffer(e.files[0]);
  19. }
  20. document.body.append(e);
  21. document.querySelector("#"+buttonID).onclick = () => e.click();
  22. },
  23. put: (buttonID, funcReturnCont, mime, fileName) => {
  24. const a = document.createElement("a");
  25. a.style.display = "none";
  26. a.onclick = () => {
  27. let content = funcReturnCont();
  28. a.href = window.URL.createObjectURL(new Blob([content], {type: mime}));
  29. a.download = fileName;
  30. a.blur();
  31. }
  32. document.body.append(a);
  33. document.querySelector("#"+buttonID).onclick = () => a.click();
  34. }
  35. }