我试图在隐藏的输入中发布一个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一切正常。
感谢您的帮助。
答案 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传输的数据进行编码。