我有一块画布,你可以在上面作画。我需要将其内容保存到服务器,以便稍后可以恢复。
为了做到这一点,我xMLHttpReq.send(*)
the encodeURIComponent(canvasP.toDataURL())*
via a xMLHttpReq.open("POST", url, false);
在我的 php 脚本中,我采用 $_POST 和base64_decode(json_decode($_POST[data]))
我将其保存到服务器上的 .png 文件中。
现在,如果画布上有一个小涂鸦,效果就很好。但是,如果 1600x1200px 画布上绘制了很多内容,并且大小约为 600kB,则我的脚本会失败,并且我会在服务器上得到一个 0kB png。
我该如何解决?如何将大画布发送到服务器?
问题是否是 _POST 大小的限制?因为,无论画布有多大,我总是可以通过window.open(canvasP.toDataURL(), "blabla");
.
这对我来说是一个两难的境地。任何帮助都感激不尽!
[编辑] PHP 只是接收空$_POST[data]
对于任何超过 ~50 kB 的内容...
所以问题必须发生在canvasP.toDataURL()
和后处理...
[EDIT2] 浏览器显示“正在上传...(xx%)”,直到“完成”。那么数据去哪儿了? :C
[EDIT3] 这是应用程序,您自己尝试一下(使用谷歌浏览器):http://students.info.uaic.ro/~tudor.berechet/ http://students.info.uaic.ro/~tudor.berechet/
[EDIT4] Mike's answer seems to be right about suhosin