发布base64编码文件问题

时间:2010-09-13 16:22:08

标签: php apache post

我试图在隐藏的输入中发布一个base64编码的图像(~500KB),我得到的只是一个错误

   501 Method Not Implemented

GET to /test.php not supported.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

我的代码

<?php error_reporting(E_ALL) ?>
<html>
<head></head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<input type="hidden" name="image" value="{base64 encoded image}">
<input type="submit" name="" value="OK">
</form>

<?php if($_POST) {
    echo '<pre>'.print_r($_POST, true).'</pre>';
} ?>

</body>
</html>

聚苯乙烯。在localhost一切正常。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

假设您正在使用相同的浏览器,它可能是post_max_size php.ini设置,但我认为它默认设置远高于~500KB。

答案 1 :(得分:0)

这可能是由于安全问题。试试这个:

要解决此问题,请将其添加到/etc/httpd/conf/httpd.conf中,该块位于以(Apache目录树的根目录路径)开头的块内:

SecRuleEngine off

<Directory "/var/www/html">
    SecRuleEngine off
</Directory>

/ var / www / html是您网站的DOCUMENT_ROOT。重启/重新加载apache。

答案 2 :(得分:0)

查看错误消息,有两个问题。一个是501,一个是404。

501是因为您的Web服务器无法识别POST方法。尝试使用小写的帖子(虽然如果这导致错误我会感到惊讶)。

404是因为没有找到表单的目标(或者可能是配置错误),并且没有设置ErrorDocument来处理404。在浏览器中查看表单的html,确保$_SERVER['PHP_SELF']输出正确的URI。

如果这些都不奇怪,请尝试发布没有任何图像数据的表单。可能需要对POST传输的数据进行编码。