发布base64编码文件的问题

3

我试图在一个隐藏的输入框中发送一个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>

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

感谢您的帮助。


GET到/test.php不支持?但是你说你正在进行POST请求? - Marc B
@oneat 不是的。我只是在测试,所以我的代码只有表单和print_r($_POST); - kat
@Marc B 是的,我正在进行100%的POST。 - kat
3个回答

0

假设您正在使用相同的浏览器,可能是post_max_size php.ini设置的问题,尽管我认为默认情况下应该设置得比~500KB高得多。


ini_get('post_max_size') 返回 64M。 - kat

0

这可能是由于安全问题引起的。请尝试以下操作:

要解决此问题,请将以下内容添加到您的 /etc/httpd/conf/httpd.conf 文件中,放在以 (Apache 目录树根路径) 开头的块内:

SecRuleEngine off

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

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


0

从错误信息来看,有两个问题。一个是501,另一个是404。

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

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

如果这些都没有问题,请尝试在没有任何图像数据的情况下发布表单。可能需要对数据进行编码以进行POST传输。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接