2015-05-30 53 views
1

我想要做一个简单的图像上传。我已经搜索了几个小时,我确定设置了enctype,并且我还根据我想要做的改变了我的php.ini。文件和文件夹的权限也是正确的。我已经尝试了另一个web服务器上的完全相同的代码,它正在工作。我正在运行apache2和php5上的覆盆子pi使用POST的PHP图像上传

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默认但真的想不通是什么原因导致的问题启用的站点 - 。

这就是error.log中从Apache2的说:

PHP公告:未定义的索引:在把uImage上/var/www/dmz/dotpic/upload.php线48,引用者: http://localhost/upload.php

编辑:

通过 “POST” 在我的意思是形式方法的问题的标题我USI NG。我不想使用$_POST阵列访问图像。对不起。

+0

我们可以看到upload.php的样子 – tnash

+0

我认为这将是太多的评论。我的代码在上面提到的另一台服务器上工作正常,所以我很确定它不会导致错误。由于数组'$ _FILES'在我的服务器上是空的,所以我确定剩下的代码无论如何都不重要。 – angeloid

回答

0

你不应该使用$_POST拿到文件,你应该使用$_FILES['uimage']来获取上传的文件。

$_FILES['uimage']与关于尺寸,临时名称上传文件的,上载结果以及上传文件的文件类型的一些信息的数组。

+0

我知道,这就是为什么我试图使用'var_dump()'为'$ _FILE'而不是'$ _POST'来转储它,就像我在我的问题中所说的那样。我正在使用此代码来获取图像:'$ image = $ _FILES [“uimage”] [“name”];' – angeloid

1

使用$_FILES['uimage']访问您的文件,$ _ POST不适用于文件。 更多信息使用此链接:http://www.w3schools.com/php/php_file_upload.asp

+0

你怎么觉得我用过$ _POST?我使用这个:'$ image = $ _FILES [“uimage”] [“name”];' – angeloid

+0

那么你为什么不把它放在你的问题中,这只是一个建议给你 –

+0

我已经把它放在我的问题,甚至使用代码块降价。不意味着要冒犯! – angeloid

0

至于出了什么上面已经回答了。你应该使用$ _FILES ['uimage']而不是$ _POST ['uimage']。祝你好运。 :)

+0

谢谢!我使用这个:'$ image = $ _FILES [“uimage”] [“name”];'我也在我的问题中写了'$ _FILES'。我不知道你为什么认为我使用了$ _POST。 – angeloid

+0

糟糕。哈哈哈。我只是假设一切。对于那个很抱歉。但说实话,这将是最常见的错误。即使我经常这样做。 :) 再次抱歉。 @angeloid –

+0

没关系,并不是要冒犯!至少从我看到使用谷歌和搜索这里,关于这个主题的最常见的错误是忘记将enctype设置为'multipart/form-data'。 – angeloid