php move_uploaded_file()介绍

move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。

语法

move_uploaded_file(filename,destination)

参数 

参数 描述
filename 上传的文件的文件名。
destination 移动文件到这个位置。

本函数检查并确保由 filename 指定的文件是合法的上传文件。如果文件合法,则将其移动到 destination指定的位置。

如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false。

如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还会发出一条警告。

注意

  1. 本函数仅用于通过 HTTP POST 上传的文件。
  2. 如果目标文件已经存在,将会被覆盖。

 

move_uploaded_file()函数实例

使用move_uploaded_file()函数上传文件到服务器。

<?php
     $tmp_filename = $_FILES[\'myupload\'][\'tmp_name\'];
     if(!move_uploaded_file($tmp_filename,\"/path/to/dest/{$_FILES[\'myupload\'][\'name\']}\")) {
          echo \"An error has occurred moving the uploaded file.<BR>\";
          echo \"Please ensure that if safe_mode is on that the \" . \"UID PHP is using matches the file.\";
          exit;
     } else {
          echo \"The file has been successfully uploaded!\";
     }
?>

 

move_uploaded_file上传文件失败的案例及解决方法

今天在实现一个在用户注册时上传头像图片文件的PHP脚本时,出现了问题:php脚本代码如下:

<?php  
define(\'ROOT\',dirname(__FILE__).\'/\');  
  if ($_FILES[\"file\"][\"error\"] > 0)  
  {  
        echo \"Return Code: \" . $_FILES[\"file\"][\"error\"] . \"<br />\";  
  }  
  else  
    {  
        echo \"Upload: \" . $_FILES[\"file\"][\"name\"] . \"<br />\";  
        echo \"Type: \" . $_FILES[\"file\"][\"type\"] . \"<br />\";  
        echo \"Size: \" . ($_FILES[\"file\"][\"size\"] / 1024) . \" Kb<br />\";  
        echo \"Temp file: \" . $_FILES[\"file\"][\"tmp_name\"] . \"<br />\";  
        if (file_exists(\"upload/\" . $_FILES[\"file\"][\"name\"]))  
        {  
            echo $_FILES[\"file\"][\"name\"] . \" already exists. \";  
        }  
        else  
        {  
            if(is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])){  
                $stored_path = ROOT.\'/upload/\'. name($_FILES[\'file\'][\'name\']);  
                  
                if(move_uploaded_file($_FILES[\'file\'][\'tmp_name\'],$stored_path)){  
                    echo \"Stored in: \" . $stored_path;  
                }else{  
                    echo \'Stored failed:file save error\';  
                }  
            }else{  
                echo \'Stored failed:no post \';  
            }  
         }  
    }  
?>  

当我执行执行上面的脚本时,脚本输出"Stored failed:file save error",很明显是出错了.在php_error_log文件中我看到了出错问题:权限不够,我终于找到了出错的地方:我们存放图片的目的目录对执行PHP的用户来说是没有权限的,执行PHP脚本的用户和我写脚本代码、创建图片文件夹的用户不是同一个用户,因此只需要将文件权限改为777即可。

收藏 打印