【问题标题】:PHP move uploaded file [closed]PHP移动上传的文件[关闭]
【发布时间】:2014-06-01 16:25:23
【问题描述】:

我正在尝试使用 html 表单和 PHP 制作上传脚本,我看到很多人使用move_uploaded_file,但我不知道它是做什么的,我环顾四周,所有其他网站也是对我来说很复杂。有人可以为我“哑巴”一下吗?

我看到的一个例子:

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

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

【问题讨论】:

标签: php


【解决方案1】:

move_uploaded_file — 将上传的文件移动到新位置

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

如果有任何机会,这种检查尤其重要 对上传文件所做的任何事情都可能向 用户,甚至同一系统上的其他用户。

Manual 的哪一部分需要帮助?

【讨论】:

  • 抱歉,6 分钟内我不能接受,但谢谢!
【解决方案2】:

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

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

var_dump($_FILES['myfile']);

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

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

【讨论】:

    【解决方案3】:

    $_FILES 来自 PHP 手册:

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

    move_uploaded_file() 来自 PHP 手册:

    bool move_uploaded_file ( string $filename , string $destination )
    

    此函数检查以确保文件名指定的文件是有效的上传文件(意味着它是通过 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

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 2011-10-07
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多