我正在尝试做一个简单的图像上传器。我已经搜索了几个小时,我确保设置了enctype,我也根据我想做的改变了我的php.ini。文件和文件夹的权限也是正确的。我在另一个网络服务器上尝试了完全相同的代码并且它正在运行。我正在运行 apache2 with php5 on raspberry pi 。
HTML代码
<form method="post" enctype="multipart/form-data" action="upload.php">
<table>
<tr><td><input type="file" name="uimage"></td></tr>
<tr><td><input name="Submit" type="submit" value="Upload image"></td></tr>
</table>
</form>
PHP代码
var_dump($_FILES);
PHP代码返回一个空数组。 var_dump($_POST);
工作正常。在另一台服务器上,两台都正常工作,图片上传成功。我认为它与我的服务器有关。我已经检查了 php.ini 文件和启用了网站的 000-default ,但实际上无法弄清楚导致问题的原因。
这是来自apache2的 error.log 所说的:
PHP注意:未定义索引:第48行/var/www/dmz/dotpic/upload.php中的uimage,referer: http://localhost/upload.php
修改
问题标题中的“POST”我的意思是我正在使用的表单方法。我不是试图使用$_POST
数组访问图像。对不起。
答案 0 :(得分:1)
使用$_FILES['uimage']
访问您的文件,$ _POST不适用于文件。
更多信息请使用此链接:http://www.w3schools.com/php/php_file_upload.asp
答案 1 :(得分:0)
您不应该使用$_POST
来获取文件,您应该使用$_FILES['uimage']
来获取上传的文件。
$_FILES['uimage']
是一个数组,其中包含有关上载文件的大小,临时名称,上载结果和上载文件的文件类型的一些信息。
答案 2 :(得分:0)
正如上面已经回答的那样。你应该使用$ _FILES [&#39; uimage&#39;]而不是$ _POST [&#39; uimage&#39;]。祝好运。 :)