使用php以不同的方式重命名每个选定文件
我的问题是,当我选择多个文件时,它会将所有选定的文件重命名为相同的文件,但我想对每个选定的文件进行稍微不同的重命名,并将其插入MySQL和本地文件夹 例如 第一个选择的文件是: 1\$date\$rand\.png 第二个选择的文件是: 2.$date.$rand..pnp 等等 我也尝试了随机数,但它会将每个选定的文件重命名为相同的。我不知道我该如何使用loop使用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
重命名文件并上载到数据库的我的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=