2010-09-13 70 views
3

我尝试在一个隐藏的输入后base64编码的图像(〜500KB)和我得到的是一个错误发布base64编码文件的问题

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> 

PS。在本地主机上一切正常。

感谢您的帮助。

+0

它是图像的错吗? – oneat 2010-09-13 16:26:55

+0

不支持GET/test.php吗?但是你说你正在做'POST'? – 2010-09-13 16:29:31

+0

@oneat No.我只是测试,所以我的代码只是形式和print_r($ _ POST); – kat 2010-09-13 16:31:48

回答

0

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

为了解决这个问题,将它添加到您的/etc/httpd/conf/httpd.conf中,与(Apache目录树的根的路径)开始的块中:

SecRuleEngine off 

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

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

0

假设你使用相同的浏览器,它可能是post_max_size php.ini设置,虽然我认为默认情况下它会设置得比〜500KB高得多。

+0

ini_get('post_max_size')返回64M – kat 2010-09-13 16:40:39

0

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

501是因为你的web服务器不能识别POST方法。尝试使用小写文章(尽管如果导致错误,我会感到惊讶)。

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

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