From b24de4fa9b3cda30a4ab6826ff438160a6370e14 Mon Sep 17 00:00:00 2001 From: purusah Date: Tue, 25 Jan 2022 23:41:26 +0200 Subject: [PATCH 01/13] Intro --- 4-binary/04-file/article.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 20878b650..ef3b45c59 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -1,27 +1,27 @@ -# File and FileReader +# File та FileReader -A [File](https://www.w3.org/TR/FileAPI/#dfn-file) object inherits from `Blob` and is extended with filesystem-related capabilities. +Об’єкт [File](https://www.w3.org/TR/FileAPI/#dfn-file) наслідується від `Blob` та надає додаткові можливості для роботи з файловою системою. -There are two ways to obtain it. +Є два способи отримати його екземпляр. -First, there's a constructor, similar to `Blob`: +По-перше, можна скористатися конструктором, схожим на `Blob`: ```js new File(fileParts, fileName, [options]) ``` -- **`fileParts`** -- is an array of Blob/BufferSource/String values. -- **`fileName`** -- file name string. -- **`options`** -- optional object: - - **`lastModified`** -- the timestamp (integer date) of last modification. +- **`fileParts`** -- масив значень, що можуть мати тип Blob/BufferSource/String. +- **`fileName`** -- рядок з іменем файлу. +- **`options`** -- необов’язковий об’єкт з властивостями: + - **`lastModified`** -- відмітка часу (ціле число) останньої зміни. -Second, more often we get a file from `` or drag'n'drop or other browser interfaces. In that case, the file gets this information from OS. +По-друге, частіше ми отримуємо файл із ``, перетягуванням чи іншим способом. У такому випадку інформацію про файл заповнює ОС. -As `File` inherits from `Blob`, `File` objects have the same properties, plus: -- `name` -- the file name, -- `lastModified` -- the timestamp of last modification. +Оскільки клас `File` наслідує `Blob`, екземпляри `File` мають такі самі властивості і ще додаткові: +- `name` -- ім’я файлу, +- `lastModified` -- відмітка часу останньої зміни. -That's how we can get a `File` object from ``: +Щоб отримати об’єкт `File` з `` потрібно: ```html run @@ -30,14 +30,14 @@ That's how we can get a `File` object from ``: function showFile(input) { let file = input.files[0]; - alert(`File name: ${file.name}`); // e.g my.png - alert(`Last modified: ${file.lastModified}`); // e.g 1552830408824 + alert(`Ім’я файлу: ${file.name}`); // наприклад my.png + alert(`Дата останньої зміни: ${file.lastModified}`); // наприклад 1552830408824 } ``` ```smart -The input may select multiple files, so `input.files` is an array-like object with them. Here we have only one file, so we just take `input.files[0]`. +Компонент введення (input) дозволяє обрати декілька файлів разом, які будуть доступні в об'єкті `input.files`. Оскільки тут ми завантажуємо один файл, то можемо скористатися `input.files[0]`. ``` ## FileReader From 0e4a5398d706cac835a8152b2058c15159fd07b3 Mon Sep 17 00:00:00 2001 From: purusah Date: Sat, 29 Jan 2022 18:13:24 +0200 Subject: [PATCH 02/13] FileReader --- 4-binary/04-file/article.md | 86 ++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index ef3b45c59..66826dd46 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -42,44 +42,44 @@ function showFile(input) { ## FileReader -[FileReader](https://www.w3.org/TR/FileAPI/#dfn-filereader) is an object with the sole purpose of reading data from `Blob` (and hence `File` too) objects. +[FileReader](https://www.w3.org/TR/FileAPI/#dfn-filereader) -- об’єкт для читання даних з `Blob`, а отже і з `File` також. -It delivers the data using events, as reading from disk may take time. +Дані передаються за допомогою подій, оскільки читання даних з диску потребує часу. -The constructor: +Конструктор: ```js -let reader = new FileReader(); // no arguments +let reader = new FileReader(); // без аргументів ``` -The main methods: +Основні методи: -- **`readAsArrayBuffer(blob)`** -- read the data in binary format `ArrayBuffer`. -- **`readAsText(blob, [encoding])`** -- read the data as a text string with the given encoding (`utf-8` by default). -- **`readAsDataURL(blob)`** -- read the binary data and encode it as base64 data url. -- **`abort()`** -- cancel the operation. +- **`readAsArrayBuffer(blob)`** -- прочитати дані в бінарному форматі і зберегти в `ArrayBuffer`. +- **`readAsText(blob, [encoding])`** -- прочитати дані як текст із заданим кодуванням (типово `utf-8`). +- **`readAsDataURL(blob)`** -- прочитати бінарні дані та закодувати у форматі base64 data url. +- **`abort()`** -- відмінити операцію. -The choice of `read*` method depends on which format we prefer, how we're going to use the data. +Вибір `read*` методу залежить від формату даних з яким ми хочемо працювати. -- `readAsArrayBuffer` -- for binary files, to do low-level binary operations. For high-level operations, like slicing, `File` inherits from `Blob`, so we can call them directly, without reading. -- `readAsText` -- for text files, when we'd like to get a string. -- `readAsDataURL` -- when we'd like to use this data in `src` for `img` or another tag. There's an alternative to reading a file for that, as discussed in chapter : `URL.createObjectURL(file)`. +- `readAsArrayBuffer` -- використовується для низькор івневих операцій з бінарними даними. Для високорівневих операцій, як отримання зрізів, об’єкт `File` успадковується від `Blob`, тому його можна використовувати безпосередньо без читання файлу. +- `readAsText` -- використовується для текстових файлів, вмісту буде записано в рядок. +- `readAsDataURL` -- використовується, якщо ми хочемо використати дані як вміст `src` тегу `img` або інших. Можна скористатися іншим способом для цього, що описано в розділі : `URL.createObjectURL(file)`. -As the reading proceeds, there are events: -- `loadstart` -- loading started. -- `progress` -- occurs during reading. -- `load` -- no errors, reading complete. -- `abort` -- `abort()` called. -- `error` -- error has occurred. -- `loadend` -- reading finished with either success or failure. +Протягом читання файлу можуть виникнути події: +- `loadstart` -- читання файлу почалось. +- `progress` -- виникає протягом читання. +- `load` -- читання завершилось без помилок. +- `abort` -- викликано `abort()`. +- `error` -- виникла помилка. +- `loadend` -- читання закінчилось успішно чи з помилкою. -When the reading is finished, we can access the result as: -- `reader.result` is the result (if successful) -- `reader.error` is the error (if failed). +Після закінчення читання файлу результат можна отримати за допомогою: +- `reader.result` якщо читання закінчилося успішно, без помилки +- `reader.error` якщо протягом читання виникла помилка. -The most widely used events are for sure `load` and `error`. +Найрозповсюдженіші події: `load` та `error`. -Here's an example of reading a file: +Приклад читання файлу: ```html run @@ -104,35 +104,35 @@ function readFile(input) { ``` -```smart header="`FileReader` for blobs" -As mentioned in the chapter , `FileReader` can read not just files, but any blobs. +```smart header="`FileReader` для Blob" +Як описано в розділі , `FileReader` може читати будь-які бінарні об’єкти, а не тільки файли. -We can use it to convert a blob to another format: -- `readAsArrayBuffer(blob)` -- to `ArrayBuffer`, -- `readAsText(blob, [encoding])` -- to string (an alternative to `TextDecoder`), -- `readAsDataURL(blob)` -- to base64 data url. +Це можна використати для перетворення бінарних Blob об’єктів у інші формати: +- `readAsArrayBuffer(blob)` -- в `ArrayBuffer`, +- `readAsText(blob, [encoding])` -- в рядок (альтернативний спосіб до `TextDecoder`), +- `readAsDataURL(blob)` -- в base64 data url. ``` -```smart header="`FileReaderSync` is available inside Web Workers" -For Web Workers, there also exists a synchronous variant of `FileReader`, called [FileReaderSync](https://www.w3.org/TR/FileAPI/#FileReaderSync). +```smart header="`FileReaderSync` доступний всередині Web Workers" +Для Web Workers існує [FileReaderSync](https://www.w3.org/TR/FileAPI/#FileReaderSync) -- синхронний варіант `FileReader`. -Its reading methods `read*` do not generate events, but rather return a result, as regular functions do. +Його метод `read*` не створює подій, а просто повертає результат, як звичайна функція. -That's only inside a Web Worker though, because delays in synchronous calls, that are possible while reading from files, in Web Workers are less important. They do not affect the page. +Синхронний метод бажано використовувати тільки разом з Web Worker, бо синхронний операція читання файлу не вплине на роботу сторінки. ``` -## Summary +## Підсумки -`File` objects inherit from `Blob`. +`File` успадковується від `Blob`. -In addition to `Blob` methods and properties, `File` objects also have `name` and `lastModified` properties, plus the internal ability to read from filesystem. We usually get `File` objects from user input, like `` or Drag'n'Drop events (`ondragend`). +На додачу до методів та властивостей, що доступні в `Blob`, об’єкт файл має властивості `name`, `lastModified` та ще можливість читати файли з файлової системи. Переважно об’єкт `File` отримується з введення користувача, як `` чи Drag'n'Drop подіями (`ondragend`). -`FileReader` objects can read from a file or a blob, in one of three formats: -- String (`readAsText`). +`FileReader` об’єкт може прочитати з файлу чи `Blob` в одному з трьох форматів: +- Рядок (`readAsText`). - `ArrayBuffer` (`readAsArrayBuffer`). -- Data url, base-64 encoded (`readAsDataURL`). +- Data url закодованому в base-64 (`readAsDataURL`). -In many cases though, we don't have to read the file contents. Just as we did with blobs, we can create a short url with `URL.createObjectURL(file)` and assign it to `` or ``. This way the file can be downloaded or shown up as an image, as a part of canvas etc. +У багатьох випадках нам не потрібно читати увесь вміст файлу. Так же як і з `Blob`, ми можемо створити коротке посилання за допомогою `URL.createObjectURL(file)` та присвоїти його тегу `` чи ``. Таким чином файл можна завантажити чи показати як зображення, як частина вмісту canvas тощо. -And if we're going to send a `File` over a network, that's also easy: network API like `XMLHttpRequest` or `fetch` natively accepts `File` objects. +Також легко відправити `File` мережею, бо мережеве API `XMLHttpRequest` чи `fetch` можуть безпосередньо працювати з об’єктами `File`. From 904b1d24d6a184e942439fc470c7a05057830c12 Mon Sep 17 00:00:00 2001 From: purusah Date: Sat, 29 Jan 2022 21:20:27 +0200 Subject: [PATCH 03/13] Fixes 1 --- 4-binary/04-file/article.md | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 66826dd46..7944d2447 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -2,9 +2,9 @@ Об’єкт [File](https://www.w3.org/TR/FileAPI/#dfn-file) наслідується від `Blob` та надає додаткові можливості для роботи з файловою системою. -Є два способи отримати його екземпляр. +Є два способи створити екземпляр `File`. -По-перше, можна скористатися конструктором, схожим на `Blob`: +По-перше, можна скористатися конструктором схожим на `Blob`: ```js new File(fileParts, fileName, [options]) @@ -42,9 +42,9 @@ function showFile(input) { ## FileReader -[FileReader](https://www.w3.org/TR/FileAPI/#dfn-filereader) -- об’єкт для читання даних з `Blob`, а отже і з `File` також. +[FileReader](https://www.w3.org/TR/FileAPI/#dfn-filereader) -- об’єкт для зчитування даних з `Blob`, а отже і з `File` також. -Дані передаються за допомогою подій, оскільки читання даних з диску потребує часу. +Дані передаються за допомогою подій, оскільки зчитування даних з диску потребує часу. Конструктор: @@ -61,25 +61,25 @@ let reader = new FileReader(); // без аргументів Вибір `read*` методу залежить від формату даних з яким ми хочемо працювати. -- `readAsArrayBuffer` -- використовується для низькор івневих операцій з бінарними даними. Для високорівневих операцій, як отримання зрізів, об’єкт `File` успадковується від `Blob`, тому його можна використовувати безпосередньо без читання файлу. +- `readAsArrayBuffer` -- використовується для низькорівневих операцій з бінарними даними. Для високорівневих операцій, як отримання зрізів, об’єкт `File` успадковується від `Blob`, тому його можна використовувати безпосередньо без читання файлу. - `readAsText` -- використовується для текстових файлів, вмісту буде записано в рядок. - `readAsDataURL` -- використовується, якщо ми хочемо використати дані як вміст `src` тегу `img` або інших. Можна скористатися іншим способом для цього, що описано в розділі : `URL.createObjectURL(file)`. -Протягом читання файлу можуть виникнути події: -- `loadstart` -- читання файлу почалось. -- `progress` -- виникає протягом читання. -- `load` -- читання завершилось без помилок. -- `abort` -- викликано `abort()`. -- `error` -- виникла помилка. -- `loadend` -- читання закінчилось успішно чи з помилкою. +Протягом зчитування файлу можуть виникнути події: +- `loadstart` -- зчитування файлу почалось. +- `progress` -- періодично виникає протягом зчитування. +- `load` -- зчитування завершилось без помилок. +- `abort` -- викликано метод `abort()`. +- `error` -- протягом зчитування виникла помилка. +- `loadend` -- зчитування закінчилось успішно чи з помилкою. -Після закінчення читання файлу результат можна отримати за допомогою: -- `reader.result` якщо читання закінчилося успішно, без помилки -- `reader.error` якщо протягом читання виникла помилка. +Після закінчення зчитування файлу результат можна отримати за допомогою: +- `reader.result` якщо зчитування закінчилося успішно, без помилки +- `reader.error` якщо протягом зчитування виникла помилка. -Найрозповсюдженіші події: `load` та `error`. +Найпотрібніші події при зчитуванні файлу: `load` та `error`. -Приклад читання файлу: +Приклад зчитування файлу: ```html run @@ -105,7 +105,7 @@ function readFile(input) { ``` ```smart header="`FileReader` для Blob" -Як описано в розділі , `FileReader` може читати будь-які бінарні об’єкти, а не тільки файли. +Як описано в розділі , `FileReader` може зчитати вміст будь-яких бінарних об’єктів, а не тільки файли. Це можна використати для перетворення бінарних Blob об’єктів у інші формати: - `readAsArrayBuffer(blob)` -- в `ArrayBuffer`, @@ -119,7 +119,7 @@ function readFile(input) { Його метод `read*` не створює подій, а просто повертає результат, як звичайна функція. -Синхронний метод бажано використовувати тільки разом з Web Worker, бо синхронний операція читання файлу не вплине на роботу сторінки. +Синхронний метод бажано використовувати тільки разом з Web Worker, бо синхронна операція читання файлу не вплине на роботу сторінки. ``` ## Підсумки From 10709ad2998f2c68d8b0484d4430da5400ce01e2 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:26:12 +0200 Subject: [PATCH 04/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 7944d2447..5cd6b8be3 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -13,7 +13,7 @@ new File(fileParts, fileName, [options]) - **`fileParts`** -- масив значень, що можуть мати тип Blob/BufferSource/String. - **`fileName`** -- рядок з іменем файлу. - **`options`** -- необов’язковий об’єкт з властивостями: - - **`lastModified`** -- відмітка часу (ціле число) останньої зміни. + - **`lastModified`** -- мітка часу (ціле число) останньої зміни. По-друге, частіше ми отримуємо файл із ``, перетягуванням чи іншим способом. У такому випадку інформацію про файл заповнює ОС. From aef3f6b561d95556f1c681e42bd398ed8a7e8f01 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:26:17 +0200 Subject: [PATCH 05/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 5cd6b8be3..4d0917de4 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -19,7 +19,7 @@ new File(fileParts, fileName, [options]) Оскільки клас `File` наслідує `Blob`, екземпляри `File` мають такі самі властивості і ще додаткові: - `name` -- ім’я файлу, -- `lastModified` -- відмітка часу останньої зміни. +- `lastModified` -- мітка часу останньої зміни. Щоб отримати об’єкт `File` з `` потрібно: From 3b0187cb247ddf09b4f3ea75ebc2a87f2016928f Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:26:54 +0200 Subject: [PATCH 06/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 4d0917de4..33b0af63a 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -62,7 +62,7 @@ let reader = new FileReader(); // без аргументів Вибір `read*` методу залежить від формату даних з яким ми хочемо працювати. - `readAsArrayBuffer` -- використовується для низькорівневих операцій з бінарними даними. Для високорівневих операцій, як отримання зрізів, об’єкт `File` успадковується від `Blob`, тому його можна використовувати безпосередньо без читання файлу. -- `readAsText` -- використовується для текстових файлів, вмісту буде записано в рядок. +- `readAsText` -- використовується для текстових файлів, вміст буде записано в рядок. - `readAsDataURL` -- використовується, якщо ми хочемо використати дані як вміст `src` тегу `img` або інших. Можна скористатися іншим способом для цього, що описано в розділі : `URL.createObjectURL(file)`. Протягом зчитування файлу можуть виникнути події: From 34c006df7b928bdac138589ede3deb9c5aee1bf3 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:06 +0200 Subject: [PATCH 07/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 33b0af63a..0449b8360 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -105,7 +105,7 @@ function readFile(input) { ``` ```smart header="`FileReader` для Blob" -Як описано в розділі , `FileReader` може зчитати вміст будь-яких бінарних об’єктів, а не тільки файли. +Як описано в розділі , `FileReader` може зчитати вміст будь-яких бінарних об’єктів, а не тільки файлів. Це можна використати для перетворення бінарних Blob об’єктів у інші формати: - `readAsArrayBuffer(blob)` -- в `ArrayBuffer`, From ba5469377eede1fd8473daff84c047b66b4ad3c9 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:12 +0200 Subject: [PATCH 08/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 0449b8360..f51c1dcbe 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -110,7 +110,7 @@ function readFile(input) { Це можна використати для перетворення бінарних Blob об’єктів у інші формати: - `readAsArrayBuffer(blob)` -- в `ArrayBuffer`, - `readAsText(blob, [encoding])` -- в рядок (альтернативний спосіб до `TextDecoder`), -- `readAsDataURL(blob)` -- в base64 data url. +- `readAsDataURL(blob)` -- в формат base64-кодованого url. ``` From 456406ce49567c3d62b0ac1685a4a67e586a5b4a Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:23 +0200 Subject: [PATCH 09/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index f51c1dcbe..e9f3438a8 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -119,7 +119,7 @@ function readFile(input) { Його метод `read*` не створює подій, а просто повертає результат, як звичайна функція. -Синхронний метод бажано використовувати тільки разом з Web Worker, бо синхронна операція читання файлу не вплине на роботу сторінки. +Синхронний метод бажано використовувати тільки всередині Web Worker, бо затримки під час синхронного виклику, що ймовірні при синхронному читанні з файлів, в Web Worker є менш важливими. Вони не впливають на сторінку. ``` ## Підсумки From 7a3731d61132a21f31e3e958fd2400a2b0e75437 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:30 +0200 Subject: [PATCH 10/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index e9f3438a8..14a38fe96 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -126,7 +126,7 @@ function readFile(input) { `File` успадковується від `Blob`. -На додачу до методів та властивостей, що доступні в `Blob`, об’єкт файл має властивості `name`, `lastModified` та ще можливість читати файли з файлової системи. Переважно об’єкт `File` отримується з введення користувача, як `` чи Drag'n'Drop подіями (`ondragend`). +На додачу до методів та властивостей, що доступні в `Blob`, об’єкт `File` має властивості `name`, `lastModified` та ще можливість читати файли з файлової системи. Переважно об’єкт `File` отримується з користувацького вводу, як `` чи Drag'n'Drop подіями (`ondragend`). `FileReader` об’єкт може прочитати з файлу чи `Blob` в одному з трьох форматів: - Рядок (`readAsText`). From b3ef0331fe8868922bac7511c39045794b8c06c0 Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:37 +0200 Subject: [PATCH 11/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 14a38fe96..63670c3de 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -133,6 +133,6 @@ function readFile(input) { - `ArrayBuffer` (`readAsArrayBuffer`). - Data url закодованому в base-64 (`readAsDataURL`). -У багатьох випадках нам не потрібно читати увесь вміст файлу. Так же як і з `Blob`, ми можемо створити коротке посилання за допомогою `URL.createObjectURL(file)` та присвоїти його тегу `` чи ``. Таким чином файл можна завантажити чи показати як зображення, як частина вмісту canvas тощо. +У багатьох випадках нам не потрібно читати увесь вміст файлу. Так же як і з blob, ми можемо створити коротке посилання за допомогою `URL.createObjectURL(file)` та присвоїти його тегу `` чи ``. Таким чином файл можна завантажити чи показати як зображення, як частину вмісту canvas тощо. Також легко відправити `File` мережею, бо мережеве API `XMLHttpRequest` чи `fetch` можуть безпосередньо працювати з об’єктами `File`. From 211dbed384cf54533a160fecdf65f14d4e70ecdb Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:27:45 +0200 Subject: [PATCH 12/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 63670c3de..6229ab86b 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -128,7 +128,7 @@ function readFile(input) { На додачу до методів та властивостей, що доступні в `Blob`, об’єкт `File` має властивості `name`, `lastModified` та ще можливість читати файли з файлової системи. Переважно об’єкт `File` отримується з користувацького вводу, як `` чи Drag'n'Drop подіями (`ondragend`). -`FileReader` об’єкт може прочитати з файлу чи `Blob` в одному з трьох форматів: +`FileReader` об’єкт може прочитати з файлу чи blob в одному з трьох форматів: - Рядок (`readAsText`). - `ArrayBuffer` (`readAsArrayBuffer`). - Data url закодованому в base-64 (`readAsDataURL`). From f05e28cc7a52f04c000bd307d4e2e349e6b4e18f Mon Sep 17 00:00:00 2001 From: Mykola Sopiha Date: Sun, 30 Jan 2022 16:28:14 +0200 Subject: [PATCH 13/13] Update 4-binary/04-file/article.md --- 4-binary/04-file/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-binary/04-file/article.md b/4-binary/04-file/article.md index 6229ab86b..5a9e429b2 100644 --- a/4-binary/04-file/article.md +++ b/4-binary/04-file/article.md @@ -131,7 +131,7 @@ function readFile(input) { `FileReader` об’єкт може прочитати з файлу чи blob в одному з трьох форматів: - Рядок (`readAsText`). - `ArrayBuffer` (`readAsArrayBuffer`). -- Data url закодованому в base-64 (`readAsDataURL`). +- URL в форматі base-64 (`readAsDataURL`). У багатьох випадках нам не потрібно читати увесь вміст файлу. Так же як і з blob, ми можемо створити коротке посилання за допомогою `URL.createObjectURL(file)` та присвоїти його тегу `` чи ``. Таким чином файл можна завантажити чи показати як зображення, як частину вмісту canvas тощо.