我希望通过浏览器获得最大为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
答案 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)输出