使用POST上传PHP图像

时间:2015-05-30 04:51:47

标签: php linux apache configuration server

我正在尝试做一个简单的图像上传器。我已经搜索了几个小时,我确保设置了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数组访问图像。对不起。

3 个答案:

答案 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;]。祝好运。 :)

相关问题