Rename photo name if already uploaded [with same name] in PHP

↘锁芯ラ 提交于 2019-12-11 20:57:58

问题


I have tried to solve this problem . But i could not solve this . Each time new photo replace the old one if same name :( Here is my code

      $uploads_dir = '/photo/';

      echo $_FILES["photo"]["name"]; 
      echo $_FILES["photo"]["size"];
      echo $_FILES["photo"]["type"];
      $pname = $_FILES["photo"]["name"]; 
      $tname=$_FILES["photo"]["tmp_name"];

      $name = pathinfo($_FILES['photo']['name'], PATHINFO_FILENAME);
      $extension = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);

       $increment = ''; //start with no suffix

       while(file_exists($name . $increment . '.' . $extension)) {
         $increment++;
     $pname = $name . $increment . '.' . $extension;

        }
        move_uploaded_file($tname, $uploads_dir.$pname);

My desired output is like this if i upload image with name "new.jpg" 3 time ... these image will not overwrite one another... these will be stored like new.jpg , new1.jpg ,new2.jpg


回答1:


try this:

  $uploads_dir = '/photo/';

  echo $_FILES["photo"]["name"]; 
  echo $_FILES["photo"]["size"];
  echo $_FILES["photo"]["type"];
  $pname = $_FILES["photo"]["name"]; 
  $tname=$_FILES["photo"]["tmp_name"];

  $name = pathinfo($_FILES['photo']['name'], PATHINFO_FILENAME);
  $extension = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);

   $increment = 0; 
   $pname = $name . '.' . $extension;
   while(is_file($uploads_dir.'/'.$pname)) {
     $increment++;
     $pname = $name . $increment . '.' . $extension;
   }
   move_uploaded_file($tname, $uploads_dir.'/'.$pname);


来源:https://stackoverflow.com/questions/24171428/rename-photo-name-if-already-uploaded-with-same-name-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!