PHP移动上传的文件

时间:2014-06-01 16:25:23

标签: php

我正在尝试使用html表单和PHP制作上传脚本,我看到很多人使用move_uploaded_file但我无法弄清楚它的作用,我环顾四周和所有其他网站对我来说太复杂了。有人可以为我“愚蠢”一点吗?

我看到的一个例子:

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))

也有人可以向我解释$_FILES吗?

3 个答案:

答案 0 :(得分:2)

  

move_uploaded_file - 将上传的文件移至新位置

     

此函数检查以确保filename指定的文件是   一个有效的上传文件(意思是它是通过PHP的HTTP POST上传的   上传机制)。如果文件有效,它将被移动到   目的地给出的文件名。

     

如果有任何机会,这种检查尤其重要   任何完成上传文件的内容都可以将其内容透露给   用户,甚至是同一系统上的其他用户。

您需要帮助的Manual中的哪一部分?

答案 1 :(得分:0)

PHP手册中的

$_FILES

  

通过HTTP POST方法上传到当前脚本的关联项目数组。

PHP手册中的

move_uploaded_file()

bool move_uploaded_file ( string $filename , string $destination )
  

此函数检查以确保filename指定的文件是有效的上载文件(意味着它是通过PHP的HTTP POST上传机制上传的)。如果文件有效,它将被移动到目的地给出的文件名。


你可以像这样使用它:

if(move_uploaded_file($_FILES['picture']['tmp_name'], './uploads/'.$_FILES['picture']['name']))
    echo 'File successfully uploaded';
else
    echo 'File could not be uploaded';

$_FILES['picture']['tmp_name']

  

上传文件存储在服务器上的文件的临时文件名。

$_FILES['picture']['name']

  

客户端计算机上文件的原始名称。

有关详细信息,请查看POST Method Uploads

答案 2 :(得分:0)

$ _ FILES是一个超级全局,很像$ _GET或$ _POST,它存储有关上传文件的信息。

如果您的上传输入表单元素的名称是'myfile',那么在上传后您将有一个辅助数组$ _FILES ['myfile']存储有关上传文件的所有数据。要了解它,只需var_dump()它:

var_dump($_FILES['myfile']);

所有上传的文件通常首先上传到/ tmp目录(或者在php.ini文件中为此目的设置的任何目录)。在对文件进行一些完整性检查之后(比如测试正确的mime类型),您需要将文件移动到它的最终目的地。这就是move_uploaded_file()函数的目的。

在这种情况下,$ _FILES ['userfile'] ['tmp_name']是上传文件的临时文件路径,$ uploadfile应该存储文件的最终路径。