PHP
文件系统 | File System

move_uploaded_file

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

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

描述

bool move_uploaded_file ( string $filename , string $destination )

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

如果上传的文件有任何可能向用户或甚至同一系统上的其他用户透露其内容的机会,这种检查尤其重要。

参数

filename

上传文件的文件名。

destination

移动文件的目标。

返回值

成功返回TRUE

如果filename不是有效的上传文件,则不会执行任何操作,并且move_uploaded_file()将返回FALSE

如果filename是有效的上传文件,但由于某种原因无法移动,则不会执行任何操作,并且move_uploaded_file()将返回FALSE。此外,还会发出警告。

示例

Example #1 Uploading multiple files

<?php $uploads_dir = '/uploads'; foreach ($_FILES["pictures"]["error"] as $key => $error) {     if ($error == UPLOAD_ERR_OK) {         $tmp_name = $_FILES["pictures"]["tmp_name"][$key];         // basename() may prevent filesystem traversal attacks;         // further validation/sanitation of the filename may be appropriate         $name = basename($_FILES["pictures"]["name"][$key]         move_uploaded_file($tmp_name, "$uploads_dir/$name"     } } ?>

笔记

注意move_uploaded_file()既是安全模式又是open_basedir。但是,限制只能放在destination路径上,以允许移动上传的文件,而这些文件filename可能与这些限制相冲突。move_uploaded_file()通过只允许移动通过PHP上传的文件来确保此操作的安全性。

警告

如果目标文件已经存在,它将被覆盖。

另请参阅

  • is_uploaded_file() - 告诉文件是否通过HTTP POST上传

  • rename() - 重命名文件或目录

← mkdir

parse_ini_file →