簡體   English   中英

PHP-重命名並上傳文件(如果存在)

[英]PHP - Rename and upload a file if it exists

我最近一直在學習用PHP構建圖片庫上傳器。 在將文件上傳到我的上載文件夾之前,我似乎無法弄清楚如何重命名文件。 誰能幫我嗎?

這是我到目前為止所擁有的。

if(isset($_POST['submit'])) {
$allowedExts = array("gif", "jpeg", "jpg", "png","GIF","JPEG","JPG","PNG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& in_array($extension, $allowedExts)) {

  if ($_FILES["file"]["error"] > 0) {
    echo "Invalid File Type";
  } else {

    $target = "../upload/";
    $name = addslashes($_FILES['file']["name"]);

    if(file_exists('../upload/' . $name)) {
        $explode = explode('.', $name); 
        $img = $explode[0];
        $ex = $explode[1];
        $i = 1;
        $new = $img . '_' . $i . '.' . $ex;

        while (file_exists('../upload/' . $new)) {
          $i++;
          $new = $img . '_' . $i . '.' . $ex;
        }

        // RENAME FILE HERE? 

    } 
      move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);
}

} else {
  echo "Error uploading image";
  die();
}

}

因此,在我的while循環之后,我想重命名文件,然后使用move_uploaded_file()函數將其移動到我的“上載”目錄中。 我能做到這一點的最好方法是什么?

謝謝

當您調用move_file_upload時,您可以簡單地給新文件起第二個參數的名稱,據我所知文檔並不清楚,但可以使用。

move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"]);

所以你會做類似的事情

move_uploaded_file($_FILES["file"]["tmp_name"], $target. $_FILES["file"]["name"] . "Some random string to be added to the filename");

或者,如果您想一起忽略之前的文件名,只需將其從第二個參數中刪除即可。

move_uploaded_file($_FILES["file"]["tmp_name"], $target. "new file name here");

為什么不同時這樣做呢?

您可以在移動時重命名它。 只需提供新文件名作為move_uploaded_file()第二個參數即可。

move_uploaded_file($_FILES["file"]["tmp_name"], $target . $new);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM