У меня есть холст, на котором можно рисовать. Мне нужно сохранить его содержимое на сервере, чтобы его можно было возобновить позже.
Для этого я xMLHttpReq.send(*)
encodeURIComponent(canvasP.toDataURL())*
через xMLHttpReq. open("POST", url, false);
В моем php скрипте я беру $_POST и base64_decode(json_decode($_POST[data]))
и сохраняю его в .png файл на сервере.
СЕЙЧАС, это работает хорошо и прекрасно, если на холсте есть небольшой рисунок. Но если на холсте размером 1600x1200px нарисовано много всего, и его размер составляет около 600 кБ, мой скрипт не работает, и я получаю на сервере png размером 0 кБ.
Как мне это исправить? Как я могу отправить большой холст на сервер?
Является ли проблема ограничением на размер _POST? Потому что, каким бы большим ни был холст, я всегда могу загрузить его через window.open(canvasP.toDataURL(), "blabla");
.
Это довольно сложная дилемма для меня. Любая помощь будет очень признательна!
[EDIT] PHP просто получает пустые $_POST[data]
для всего, что превышает ~50 с чем-то кБ...
Так что проблема должна возникнуть между canvasP.toDataURL()
и POST-ом...
[EDIT2] Браузер говорит "Uploading...(xx%)" пока не будет "done". ТАК КУДА ЖЕ ДЕВАЮТСЯ ДАННЫЕ? :C
[EDIT3] Вот приложение, попробуйте сами (используйте google chrome): http://students.info.uaic.ro/~tudor.berechet/
[EDIT4] Ответ Майка кажется правильным насчет сухосина