PHP无法获取指定文件大小的文件

时间:2014-04-07 12:30:50

标签: php

我希望通过浏览器获得最大为20 Mb的文本文件。

我的PHP代码是:

$allowedExts = array("txt");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
$file_name=$_FILES["file"]["name"];

if ((
   ($_FILES["file"]["type"] == "text/plain"))
&& ($_FILES["file"]["size"] < 5243000)
&& in_array($extension, $allowedExts))
{ echo "Uploaded : " . $_FILES["file"]["name"] . "<br>";}

else {echo "Invalid file";}

注意:我的php ini设置为:

ini_set("upload_max_filesize", "20M");
ini_set("memory_limit", "32M");
ini_set("post_max_size","20M");  

但我的浏览器抛出:文件无效。即使是3 Mb文件(小于2 Mb工作正常
扩展名仅为.txt,
我确信扩展不是问题。

可能是什么和它的解决方案?

更新:
我的PHP.ini说:上传文件的最大允许大小。 upload_max_filesize = 20M
但是我的php信息();仍然说:upload_max_filesize本地2M主2M

2 个答案:

答案 0 :(得分:2)

您无法使用upload_max_filesize更改ini_set变量(正如您在此列表中看到的那样:List of php.ini directives)。改为改变php.ini配置。

答案 1 :(得分:0)

使用print_r($ _ FILES)

确保以下内容

1)$ _FILES [&#34; file&#34;] [&#34; type&#34;]完全匹配&#34; text / plain&#34;

2)$ _FILES [&#34; file&#34;] [&#34; size&#34;]小于5243000

3)$扩展值为txt(在这种情况下大写不足)

4)在ini_set之后用ini_get检查所有设置,以确保设置已更改

5)如果仍然可以,请通过此处的print_r($ _ FILES)输出