Как преобразовать изображения в URL-адреса данных Base64 с помощью JavaScript

Преобразовать изображения JPG и PNG в URL-адреса данных Base64 легко с помощью JavaScript. Сейчас я покажу вам, как это сделать.

Если вы не знали, URL данных — это просто длинная строка символов, которая представляет двоичный формат вашего изображения. Затем вы можете использовать этот URL в тегах HTML <img>.

Очень удобно.

Видеоурок

Если вы предпочитаете видеоинструкцию, вы можете посмотреть это 4-минутное видео на моем канале YouTube:

Шаг 1. Ввод файла

Вам понадобится поле ввода файла в вашем HTML. Вот так:

<input type="file" id="fileInput" />
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы можете назвать идентификатор так, как вам нравится.

Шаг 2. Событие изменения

В JavaScript вам нужно прикрепить слушатель change, который будет реагировать на выбор пользователем файла.

const fileInput = document.getElementById("fileInput");

fileInput.addEventListener("change", e => {
    console.log(e);
});
Вход в полноэкранный режим Выход из полноэкранного режима

Если вы выберете файл и посмотрите консоль, вы заметите объект события. Обратите внимание на свойство target.files.

Шаг 3. Настройка программы чтения файлов

Далее вам нужно получить ссылку на выбранный файл и создать новый экземпляр FileReader. Этот объект чтения файлов может читать файлы в различных формах.

fileInput.addEventListener("change", e => {
    const file = fileInput.files[0];
    const reader = new FileReader();
});
Вход в полноэкранный режим Выйти из полноэкранного режима

Замените строку console.log приведенным выше кодом.

Шаг 4. Чтение как URL данных

Теперь, когда мы создали FileReader, мы можем указать ему читать файл как Base64 Data URL.

reader.addEventListener("load", () => {
    // Base64 Data URL 👇
    console.log(reader.result);
});

reader.readAsDataURL(file);
Войти в полноэкранный режим Выход из полноэкранного режима

Как вы видите, мы прикрепили событие load к FileReader. После завершения чтения файла мы можем получить URL данных, обратившись к reader.result.

Полный код

const fileInput = document.getElementById("fileInput");

fileInput.addEventListener("change", e => {
    const file = fileInput.files[0];
    const reader = new FileReader();

    reader.addEventListener("load", () => {
        // Base64 Data URL 👇
        console.log(reader.result);
    });

    reader.readAsDataURL(file);
});
Вход в полноэкранный режим Выйти из полноэкранного режима

Готово! Не стесняйтесь использовать этот URL данных в своих тегах <img>. Только не делайте изображения слишком большими 😎

Запишитесь сейчас 👉 JavaScript DOM Crash Course

Если вы изучаете веб-разработку, вы можете найти полный курс по JavaScript DOM по ссылке ниже 👇.
https://www.udemy.com/course/the-ultimate-javascript-dom-crash-course/?referralCode=DC343E5C8ED163F337E1

Оцените статью
devanswers.ru
Добавить комментарий