Хорошо, так что у меня есть одна страница PHP, которая содержит HTML-форму. После того, как эта HTML-форма заполнена, Я использую PHP для сохранения данных в базе данных MySQL (все на одной странице).
В этой форме у меня есть Холст HTML что я рисую с Sketch.js
http://intridea.github.io/sketch.js/
<canvas id="tcInjuryImageFront" width="283px" height="629px" style="background-image: url('includes/images/image001.png'); float: left;"></canvas>
Я хочу сохранить этот холст как изображение и поместить его вместе с остальными данными формы в мою базу данных MySQL (используя PHPMyAdmin).
Как бы я поступил так? Я попробовал метод, размещенный здесь: Как мы можем сохранить изображение HTML5 холст в базу данных в PHP ; однако я получаю следующую ошибку:
XMLHttpRequest не может загрузить http://test.com/index.php. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождениеhttp://www.test.comПоэтому не допускается доступ. Ответ имел HTTP-код состояния 404.
когда я использую следующую функцию JavaScript:
function saveCanvas()
{
var frontCanvas = document.getElementById("tcInjuryImageFront");
var dataUrl = frontCanvas.toDataURL();
$.ajax({
type: "POST",
url: "http://test.com/index.php",
data: {image: dataUrl}
})
.done(function(respond){alert("done: "+respond);})
.fail(function(respond){alert("fail");})
.always(function(respond){alert("always");})
} //end saveCanvas
Когда я запускаю это, я получаю оповещения для потерпеть поражение а также всегда. Это не имеет никакого смысла для меня, потому что это тот же самый URL, на котором я сейчас нахожусь, так что он определенно находится в той же области.
Честно говоря, хотя этот метод кажется неправильным для моих целей, так как я не пытаюсь загрузить эти данные на новую страницу, Я просто пытаюсь сделать его доступным в PHP на текущей странице, чтобы сохранить его в базе данных MySQL вместе с остальными данными формы.
Идеи?
Итак, я понял. Я не смог получить информацию для сохранения на той же странице, поэтому я создал новую страницу php и произвел весь этот код холста после завершения оператора вставки для остальных данных формы.
Затем я вставил данные изображения в поле BLOB с помощью оператора update, после чего снова отобразил его, и нарисованные эскизы из sketch.js были отображены правильно.
Других решений пока нет …