📌  相关文章
📜  如何使用PHP将文件移动到服务器上的不同文件夹中?

📅  最后修改于: 2022-05-13 01:54:11.606000             🧑  作者: Mango

如何使用PHP将文件移动到服务器上的不同文件夹中?

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

句法:

move_uploaded_file ( string $Sourcefilename, string $destination ) : bool
rename ( string $oldname, string $newname [, resource $context ] ) : bool
  • move_upload_file() 方法:此函数检查以确保源文件或语法中的“$Sourcefilename”是有效的上传文件(意味着它是通过 PHP 的 HTTP POST 上传机制上传的)。如果文件有效,它将被移动到由目标或语法中的 '$destination' 指定的文件名。
    如果对上传的文件所做的任何操作都可能将其内容泄露给用户,甚至同一系统上的其他用户,那么这种检查就尤为重要。请注意,如果目标文件已经存在,它将被覆盖。由于这个原因,应该首先检查文件的可用性,然后必须采取唯一的行动。
  • rename() 方法:此方法尝试将旧名称重命名为新名称,并在必要时在目录之间移动它。如果 newname 文件存在,那么它将被覆盖。如果存在重命名 newname 目录,则此函数将发出警告。

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

上传.html



  

    
         Move a file into a different
         folder on the server
    

  

    
                                       

                        
                       

上传文件。 PHP



";
        $uOk = 0;
    }
      
    // Check if $uOk is set to 0 
    if ($uOk == 0) {
        echo "Your file was not uploaded.
";     }             // 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.
";                            // Moving file to New directory              if(rename($target_file, "New/".                          basename( $_FILES["file"]["name"]))) {                 echo "File moving operation success
";             }             else {                 echo "File moving operation failed..
";             }         }         else {             echo "Sorry, there was an error uploading your file.
";         }     } }    ?>

注意: Uploads 和 New 目录已经存在一次,因此如果它们在服务器内不可用,您将不得不创建它们。


代码运行:

使用重命名方法运行的代码(移至新)


重要方法:

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