Изображения и загрузка

Безопасные адреса и callback загрузки на стороне приложения.

1.0.0-beta.6 · Локальная поставка · desktop

Вставьте по адресу

editor.insertImage({ src: '/uploads/picture.png', alt: 'Описание', width: 640, height: 480 });

Изображения доступны в base/pro; insertImage возвращает boolean. Изображение inline, заменяет выделение одной операцией истории. src обязателен; alt/title — текст; размеры — целые 1–10000. Допустимы HTTP(S), относительные адреса и ограниченные raster data URL PNG/JPEG/GIF/WebP. Blob/file/javascript и SVG data URL запрещены.

Подключите загрузку

В превью конструктора файл можно выбрать в диалоге изображения. Он читается локально и встраивается в HTML как data URL; на сервер сайта файл не отправляется. Чтобы загрузка работала в вашем приложении и изображения хранились отдельно, задайте callback uploadImage, возвращающий постоянный URL. Без callback диалог предлагает только адрес изображения.

const editor = new ViText('#editor', {
  preset: 'base',
  uploadImage: async (file, { signal }) => {
    const body = new FormData(); body.append('image', file);
    const response = await fetch('/api/images', { method: 'POST', body, signal });
    if (!response.ok) throw new Error('Загрузка не выполнена');
    const result = await response.json();
    return { src: result.url, alt: file.name };
  }
});

/api/images — маршрут вашего приложения, ViText его не создаёт. До callback проверены заявленный MIME, ненулевой размер и максимум 5 000 000 байт; сервер проверяет реальные байты/доступ/лимиты.

Отмена и устаревший ответ

uploadImage(file, { signal?, alt? }) возвращает Promise. Signal/destroy отменяют операцию, даже если callback игнорирует отмену. Изменение документа или CSS во время загрузки делает результат устаревшим; StaleDocumentError не вставляет изображение. Перемещение курсора допустимо: результат вставляется в сохранённый диапазон.

Приложение удаляет неиспользованный загруженный файл самостоятельно. Вставка файлов из drag/drop или clipboard в callback пока не подключена. Внешний URL может обращаться к стороннему серверу; CSP и доверенные домены определяет приложение.

Найти в документации

Ничего не найдено. Попробуйте другие слова.

Все разделы документации