1

有什么意义$_FILES["file"]["tmp_name"]

我知道这是存储在服务器上的文件的临时副本的名称,但是为什么我们需要这个$_FILES["file"]["name"]

我认为这与防止名称冲突有关,这是真的吗?还有其他原因吗?我正在使用 PHP 语法,但我猜这个概念将适用于所有语言?

4

2 回答 2

4
  1. 这不是 PHP 语法。
  2. $_FILES['x']['name']将文件名存储在用户的文件系统上——这只是浏览器设置的额外信息——就像$_FILES['x']['type'].
  3. $_FILES['x']['tmp_name']将上传文件的名称存储在服务器上。

编辑:

当您上传文件时,它会以物理方式存储在服务器的硬盘上。文件名(不是整个路径)将在 PHP 中的$_FILES['x']['tmp_name']变量下可用。您应该使用move_uploaded_file()函数移动文件。此函数知道存储文件的目录的路径,因此它能够将文件移动到新位置。

$_FILE['x']['name'] / ['type']实际上完全没有用,因为在文件上传期间由浏览器设置,因此它们可以存储虚假信息。

于 2012-07-15T18:12:38.520 回答
1

因为当有人上传文件时,除非您将其保存在某处,否则它不会真正以“名称”保存在磁盘上,除非您明确将其保存在其他地方。在那之前,它的内容只能在临时文件中找到。

于 2012-07-15T18:12:47.443 回答