我有一个可以绘制的画布。我需要将其内容保存到服务器,以便以后可以恢复它。
为此,我使用
在我的php脚本中,我接收$_POST并使用
现在,如果画布上只有一些小涂鸦,这个方法完全可行。但是,如果1600x1200像素的画布上有很多东西被绘制了,并且它的大小达到了600kB,那么我的脚本就会失败,而我的服务器上只有一个0kB的png文件。
我该如何解决这个问题?我怎样才能将大型画布发送到服务器?
问题是_POST大小的限制吗?因为无论画布有多大,我都可以通过
对我来说,这是一个棘手的问题。任何帮助都将不胜感激!
[编辑] 对于超过50多kB的任何内容,PHP仅接收空的
[编辑2] 浏览器说“上传中...(xx%)”,直到“完成”。数据去哪了? :C
[编辑3] 这是应用程序,请自行尝试(使用Google Chrome):http://students.info.uaic.ro/~tudor.berechet/ [编辑4] Mike的答案似乎正确关于suhosin。
为此,我使用
xMLHttpReq.open("POST", url, false);
,通过xMLHttpReq.send(*)
和encodeURIComponent(canvasP.toDataURL())*
将数据发送到服务器。在我的php脚本中,我接收$_POST并使用
base64_decode(json_decode($_POST[data]))
将其保存到服务器上的.png文件中。现在,如果画布上只有一些小涂鸦,这个方法完全可行。但是,如果1600x1200像素的画布上有很多东西被绘制了,并且它的大小达到了600kB,那么我的脚本就会失败,而我的服务器上只有一个0kB的png文件。
我该如何解决这个问题?我怎样才能将大型画布发送到服务器?
问题是_POST大小的限制吗?因为无论画布有多大,我都可以通过
window.open(canvasP.toDataURL(), "blabla");
下载它。对我来说,这是一个棘手的问题。任何帮助都将不胜感激!
[编辑] 对于超过50多kB的任何内容,PHP仅接收空的
$_POST[data]
...
所以问题必须出现在canvasP.toDataURL()
和POST之间...[编辑2] 浏览器说“上传中...(xx%)”,直到“完成”。数据去哪了? :C
[编辑3] 这是应用程序,请自行尝试(使用Google Chrome):http://students.info.uaic.ro/~tudor.berechet/ [编辑4] Mike的答案似乎正确关于suhosin。
post_max_size
是多少?发送到服务器的 URI 编码数据的实际大小是多少? - sdleihssirhcini_get('post_max_size')
。 - kirilloid