Загрузка изображения (как данные: image / png: base64) на веб-сервер - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть изображение на веб-странице, сконструированное так:

<img src="data:image/png;base64;...." />

Содержимое изображения получено от пользователя, вставляющего его в браузер.У меня вопрос, как мне затем загрузить изображение на веб-сервер (PHP, если это имеет значение).

Ответы [ 2 ]

7 голосов
/ 08 февраля 2012

1) Возьмите атрибут src с помощью javascript (или данных, предоставленных пользователем)

2) Отправьте его на сервер «как есть» или отрежьте и отправьте все после base64; (AJAX или POST, метод GET, вероятно, не очень подходит для больших изображений)

3) Декодировать base64 на стороне сервера (все после base64;, если не вырезано), сохранить результат как двоичный файл - это изображение.

Вот и все.

пс: просто напоминание - осторожно с возможным внедрением кода. Проверьте представленные данные, или кто-то загрузит закодированный php-скрипт. Отключите php engine в папке с загрузками и убедитесь, что конечный результат является реальным изображением (например, с помощью библиотеки GD). Даже если скрипт не может быть запущен на вашем сервере, он может быть использован для вредоносных запросов к другим серверам с помощью php-скриптов.

1 голос
/ 08 февраля 2012

Просто опубликуйте кодированный в Base 64 текст на своем сервере.

Вы можете сохранить его как ...

file_put_contents($image, base64_decode($str));
...