当我尝试使用$_POST
访问上载的文件时,我没有得到任何信息,但是如果我使用$_FILES
,我将获得所有与上载的文件相关的信息。
为什么我们不能使用$_POST
而不是$_FILES
?
答案 0 :(得分:2)
这是 一种语言设计决策 ,它是PHP的创建者早就做出的。您可以询问PHP Rasmus Lerdorf(https://en.wikipedia.org/wiki/Rasmus_Lerdorf)的创建者。
但是,我有一些很好的理由可以考虑将$_POST
和$_FILES
分开。
从文档中
全局$ _FILES将包含所有上载的文件信息。 [...] 默认情况下,文件将存储在服务器的默认临时目录中 目录,除非已使用 php.ini中的upload_tmp_dir指令。服务器的默认目录 可以通过在环境变量中设置环境变量TMPDIR来更改 运行PHP的环境。从一个内部使用putenv()进行设置 PHP脚本不起作用。也可以使用此环境变量 确保其他操作正在处理上传的文件,例如 好吧。
$_FILES
数组包含诸如名称,类型,大小,临时名称,错误信息,临时位置等信息。因此,对于文件而言,需要大量信息,并且文件中的其他数据存储在临时位置。
$_POST
数组基本上只包含提交的文本字符串。因此,我猜测做出设计决定仅仅是因为清楚区分这些变量很有用。