【发布时间】:2014-04-08 18:28:45
【问题描述】:
我想通过浏览器获取最大 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 info();还是说:upload_max_filesize local 2M master 2M
【问题讨论】:
-
试试
print_r($_FILES); -
用
var_dump($_FILES["file"]);检查$_FILES的实际值 -
它给出:array(5) { ["name"]=> string(5) "a.txt" ["type"]=> string(0) "" ["tmp_name"] => string(0) "" ["error"]=> int(1) ["size"]=> int(0) } 无效文件
-
@AshwiniAgarwal print_r($_FILES);给出: Array ( [file] => Array ( [name] => a.txt [type] => [tmp_name] => [error] => 1 [size] => 0 ) ) 无效文件
标签: php