Мне удалось сохранить холст как изображение, используя javaScript и Ajax, но я хочу или хотел бы, чтобы диалоговое окно не появлялось для выбора папки назначения, а сохраняло ее по заранее установленному пути.
Блок кода прилагается:
<script type="text/javascript">
function guardar() {
var link = document.createElement('a')
link.download = "firma";
link.href = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
link.click();
}
</script>
<button onclick="guardar()" id="convertir">Convertir</button>
В этом блоке кода я определяю функцию для преобразования в изображение, но мне нужно дополнительно автоматизировать этот процесс, сохранив изображение по заданному пути на сервере с помощью PHP, и вызов функции будет выполнен в то же время, когда администратор дает зарегистрировать пользователя.
У меня тоже есть вопрос, как мне загрузить изображение на сервер? Мне нужно сохранить подпись в базе данных, у меня есть сомнения, загружать ли изображение в базу данных или в базе данных сохранить путь к изображению.
На основе небольшого кода, которым вы поделились, я создал холст и заполнил его красным квадратом. При нажатии кнопки генерируется XHR-запрос к тому же PHP с методом POST, который отправляет изображение, закодированное в BASE64.
PHP, когда обнаруживает отправку по POST поля
imagen
, удаляет начальный заголовок (до первой запятой) и декодирует данные BASE64, чтобы сохранить их позже в файле с именемimagen.png
.Код XHR отображает ссылку, позволяющую просмотреть изображение, сохраненное на сервере. Важно, чтобы у сервера были права на запись, чтобы он работал.
Вот пример:
Важно задать атрибуты
width
иheight
холста напрямую, а не черезcss
них, так как они относятся не к стилю, а к размеру холста<canvas>
. Изображение отправляется на сервер в форматеBase64
.Путь, по которому хранится изображение, должен иметь необходимые разрешения.
Я прокомментировал самые важные части: