Php 多文件重命名错误

Php 多文件重命名错误,php,file-rename,Php,File Rename,我使用PHP重命名多个文件,它的工作原理完美,但我只需要保存文件的随机数作为文件名 但在我的例子中,我得到了随机数+文件名 当我删除文件名时,保存的图像没有扩展名 我只需要使用重命名的名称保存文件,我需要删除文件名并使用随机数保存我使用此方法生成随机数$newname=md5rand*time 这里是重命名partmove\u上传的\u文件$file\u tmp,$desired\u dir/$新名字$文件名;当我删除$file\u name时,输出文件将不带扩展名保存 这是我的密码 以上重要代

我使用PHP重命名多个文件,它的工作原理完美,但我只需要保存文件的随机数作为文件名

但在我的例子中,我得到了随机数+文件名

当我删除文件名时,保存的图像没有扩展名

我只需要使用重命名的名称保存文件,我需要删除文件名并使用随机数保存我使用此方法生成随机数$newname=md5rand*time

这里是重命名partmove\u上传的\u文件$file\u tmp,$desired\u dir/$新名字$文件名;当我删除$file\u name时,输出文件将不带扩展名保存

这是我的密码

以上重要代码适用于多图像上传

$extension = end(explode('.', $_FILES['image']['name'])); 
move_uploaded_file($file_tmp, "$desired_dir/" . $newname.".".$extension);
请试试这个,而不要

 move_uploaded_file($file_tmp, "$desired_dir/" . $newname . $file_name);

获取文件的扩展名,检查是否有扩展名,如果有,则附加到文件,创建随机数,并将数字与扩展名合并:

$finfo = pathinfo($_FILES['files']['name'][$key]);
$extension = '';
if (!empty($finfo[PATHINFO_EXTENSION])) {
    $extension = "." . $finfo[PATHINFO_EXTENSION];
}
$file_name = md5(rand() * time()) . "." . $extension;
试试这个


我想当我删除$file_name时,您必须再次阅读上面的问题输出图像保存时没有扩展名i have[$key]此函数可以进行多个图像上载,因为$extension=strtolowerendexplode'.',$\u FILES['FILES']['name'][$key];请尝试这个而不是那个。我在这一行中得到错误$extension=strtolowerendexplode'',$\u FILES['FILES']['name'][$key];这是错误严格的标准:只有变量应该通过引用传递只有两个图像存储在服务器中,我得到了上面的错误你能帮助我在哪里需要更改替换$file_name=。。。使用我的代码。我有更新我的代码的问题,我只能看到没有扩展名的文件保存。我不想更改代码,如果我需要一个完整的代码,我会像上传图像和重命名一样提问**我只想知道我的代码有什么问题,或者我可以一个接一个地重命名存储在服务器中的文件吗
$finfo = pathinfo($_FILES['files']['name'][$key]);
$extension = '';
if (!empty($finfo[PATHINFO_EXTENSION])) {
    $extension = "." . $finfo[PATHINFO_EXTENSION];
}
$file_name = md5(rand() * time()) . "." . $extension;
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 1024*100; //100 kb
$path = "uploads/"; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
    // Loop $_FILES to exeicute all files
    foreach ($_FILES['files']['name'] as $f => $name) {     
        if ($_FILES['files']['error'][$f] == 4) {
            continue; // Skip file if any error found
        }          
        if ($_FILES['files']['error'][$f] == 0) {              
            if ($_FILES['files']['size'][$f] > $max_file_size) {
                $message[] = "$name is too large!.";
                continue; // Skip large files
            }
            elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
                $message[] = "$name is not a valid format";
                continue; // Skip invalid file formats
            }
            else{ // No error found! Move uploaded files 
                if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name))
                $count++; // Number of successfully uploaded file
            }
        }
    }
}