Переименуйте каждый выбранный файл по-разному, используя php - PullRequest
0 голосов
/ 26 февраля 2019

Моя проблема в том, что когда я выбираю несколько файлов, он переименовывает все выбранные файлы в один и тот же, но я хочу переименовать каждый выбранный файл немного по-разному и вставить в MySQL и локальную папку.

Например,

Первый выбранный файл будет:

1_ $ date_ $ rand_.png

Второй выбранный файл будет:

2_ $ date_ $ rand_.pnp

И так далее ...

Я также пробовал со случайным числомно он также переименует каждый выбранный файл в тот же.Я не могу понять, как мне это сделать с помощью цикла.


Мой php-код для переименования файла и загрузки в базу данных:

$rand = rand(0, 99999);
$date = date('Y_m_d-H_i_s-a', time());
$count = 0;
$path = "../../images/"; // Upload directory=
$filename = $date."_".$rand.'.';

foreach ($image as $f => $imgname) {
  $ext = end((explode(".", $imgname)));
 mysqli_query($conn,"INSERT INTO images(name)
 VALUES  ('$filename$ext')");

  if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], "$path/$filename$ext")) {
    $count++; // Number of successfully uploaded files
  }
}

1 Ответ

0 голосов
/ 26 февраля 2019

Используйте file_exists() и счетчик

$rand = rand(0, 99999);
$date = date('Y_m_d-H_i_s-a', time());
$count = 0;
$fileCounter = 0;
$path = "../../images/"; // Upload directory=
$filename = $date."_".$rand.'.';

foreach ($image as $f => $imgname) {
  $ext = end((explode(".", $imgname)));

    $fileCounter=1;

    $fullFilename = "$filename$fileCounter$ext" ;
    while(file_exists($path . '/'. $fullFilename)){
       $fileCounter ++;
       $filename = "$filename$fileCounter$ext" ;

    }

   mysqli_query($conn,"INSERT INTO images(name) VALUES ('$fullFilename')");

  if(move_uploaded_file($_FILES["image"]["tmp_name"][$f],$path . '/'.$fullFilename )) {
    $count++; // Number of successfully uploaded files
  }

}
...