关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

怎么用PHP将文件移动到云服务器上的不同文件夹里

发布时间:2022-08-31 15:16:55

服务器就选第八云,免费提供技术指导!


move_uploaded_file() 函数和 rename() 函数用于将文件移动到云服务器上的不同文件夹中。在这种情况下,我们已经在服务器的临时目录中上传了一个文件,该方法从该目录中分配了新目录。文件 temp 已完全移动到新位置。move_uploaded_file() 仅允许移动通过 PHP 上传的文件,从而确保此操作的安全性。因此,要移动已经上传的文件,我们使用 rename() 方法。

句法:

move_uploaded_file (string $Sourcefilename, string $destination) : bool 重命名(字符串 $oldname,字符串 $newname [,资源 $context]):bool  



move_upload_file() 方法:此函数检查以确保源文件或语法中的“$Sourcefilename”是有效的上传文件(意味着它是通过 PHP 的 HTTP POST 上传机制上传的)。如果文件有效,它将被移动到由destination 或语法中的'$destination' 给出的文件名。

如果对上传文件进行的任何操作都可能向用户甚至同一系统上的其他用户泄露其内容,则这种检查尤为重要。请注意,如果目标文件已经存在,它将被覆盖。由于这个原因,应首先检查文件的可用性,然后必须采取唯一的措施。

rename() 方法:此方法尝试将 oldname 重命名为 newname,必要时在目录之间移动它。如果 newname 文件存在,那么它将被覆盖。如果存在重命名新名称目录,则此函数将发出警告。


示例:此示例是一个代码,它在名为 Uploads 的目录中上传一个文件,然后将其路径更改为另一个名为 New 的目录。

上传.HTML

<!DOCTYPE html>

<html>

<head>

    <title>

         Move a file into a different

         folder on the server

    </title>

</head>  

<body>

    <form action="upfile.php" method="post"

            enctype="multipart/form-data"> 

        <input type="file" name="file" id="file">

<br><br>

        <input type="submit" name="submit" value="Submit">

    </form>

</body>

</html>        

上传文件.php


<?php

// The target directory of uploading is uploads

$target_dir = "uploads/";

$target_file = $target_dir . basename($_FILES["file"]["name"]);

$uOk = 1;

if(isset($_POST["submit"])) {     

    // Check if file already exists

    if (file_exists($target_file)) {

        echo "file already exists.<br>";

        $uOk = 0;

    }     

    // Check if $uOk is set to 0

    if ($uOk == 0) {

        echo "Your file was not uploaded.<br>";

    }    

    // if uOk=1 then try to upload file

    else {         

        // $_FILES["file"]["tmp_name"] implies storage path

        // in tmp directory which is moved to uploads

        // directory using move_uploaded_file() method

        if (move_uploaded_file($_FILES["file"]["tmp_name"],

                                            $target_file)) {

            echo "The file ". basename( $_FILES["file"]["name"])

                        . " has been uploaded.<br>";

                          // Moving file to New directory 

            if(rename($target_file, "New/". 

                        basename( $_FILES["file"]["name"]))) {

                echo "File moving operation success<br>";

            }

            else {

                echo "File moving operation failed..<br>";

            }

       }

        else {

            echo "Sorry, there was an error uploading your file.<br>";

        }

    }

}

注意:目录 Uploads 和 New 已经存在一次,因此如果它们在服务器中不可用,则必须创建它们。

重要方法:

  • file_exists($target_file):此方法用于检查路径是否存在。如果存在则返回真,否则返回假。
  • basename( $_FILES[“file”][“name”] ):该方法用于获取所选文件的名称,其特殊之处在于它对用户提供的输入字符串进行操作,并且不知道实际文件系统并提供浏览器提供的安全功能的使用。



/template/Home/D8Cloud/PC/Static