Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php以不同的方式重命名每个选定文件_Php_Mysql_Loops_Rename - Fatal编程技术网

使用php以不同的方式重命名每个选定文件

使用php以不同的方式重命名每个选定文件,php,mysql,loops,rename,Php,Mysql,Loops,Rename,我的问题是,当我选择多个文件时,它会将所有选定的文件重命名为相同的文件,但我想对每个选定的文件进行稍微不同的重命名,并将其插入MySQL和本地文件夹 例如 第一个选择的文件是: 1\$date\$rand\.png 第二个选择的文件是: 2.$date.$rand..pnp 等等 我也尝试了随机数,但它会将每个选定的文件重命名为相同的。我不知道我该如何使用loop 重命名文件并上载到数据库的我的php代码: $rand = rand(0, 99999); $date = date('Y_m_d

我的问题是,当我选择多个文件时,它会将所有选定的文件重命名为相同的文件,但我想对每个选定的文件进行稍微不同的重命名,并将其插入MySQL和本地文件夹

例如

第一个选择的文件是:

1\$date\$rand\.png

第二个选择的文件是:

2.$date.$rand..pnp

等等

我也尝试了随机数,但它会将每个选定的文件重命名为相同的。我不知道我该如何使用loop


重命名文件并上载到数据库的我的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
  }
}
使用
文件\u 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
  }

}

您只定义一次文件名,移动
$filename=$date.“uuz”.rand(099999)。”就在
$ext
之前的循环中。这不起作用,代码中也有语法错误。
$filename\u$fileCounter\u$ext
抛出了一个错误,我将其修复为
$filename$fileCounter$ext
,但我的问题是现在它仍然是一样的,我的意思是它没有重命名每个文件。另外,路径在文件名之前插入到数据库中,但我不希望这样。我更新了,它将向所有文件添加1,如果文件存在,它将使用2,等等。。。等等。好的,现在看起来不错,但它删除了扩展名之前的点,所以我将“$code>”$filename$fileCounter$ext“
”放入这个“$code>”$filename$fileCounter”。“$ext”,就像现在它在扩展名之前添加点:”)加上我更改了“
$fileCounter++”$文件名
$fileCounter++$fileCounter
是,
$fileCounter++$文件名
==>
$fileCounter++$fullFilename=