POST没有发送base64编码的图像

时间:2012-10-26 17:08:47

标签: php javascript base64

我有几个使用html5制作的图像放置位置。当图像被解析并转换为数据(并在base64中编码)时,我抓取该数据并通过post发送到php文件。

在localhost上,在php文件中完全接收到base64字符串。但是,当我移动到服务器时,图像预处理和base64发送到服务器工作(我读取标题),但是当在php文件中时,base64字符串不再存在。有什么我想念的吗?

一些额外信息:

  • 我没有对字符串进行url编码,因为如果没有这样做,它会在本地工作,并且这样做服务器仍然无法获取base64数据。
  • 在我的案例中,我没有超过post_max_size8M,但base64字符串加上50kb的其他数据权重

突发新闻

我尝试上传600kb的数据。现在服务器提示:

<html><head>
<title>413 Request Entity Too Large</title>
</head><body>
<h1>Request Entity Too Large</h1>
The requested resource<br />/altmail/admin/calls/ajax.previewnewsletter.php<br />
does not allow request data with POST requests, or the amount of data provided in
the request exceeds the capacity limit.
</body></html>

同样,post_max_size足够大了。

突发新闻2

上传相反的38x38,220bytes图片后,它正确上传。

2 个答案:

答案 0 :(得分:2)

检查Apache请求大小限制:

http://httpd.apache.org/docs/2.2/mod/core.html#LimitRequestFieldSize

HTTP的所有内容都有限制,所以如果有什么东西在这里工作而不是那里,那就增加它的大小。 ;)

答案 1 :(得分:0)

您是否将 base64 数据保存到文件中?如果是这样,文件夹可能没有标记为“WRITE”,请检查。

您正在使用$_POST或在Localhost中使用全局变量。 如果您使用全局更改为$_POST

如果您使用的是RAW,请使用如下变量: $_GLOBALS['HTTP_RAW_POST_DATA']