繁体   English   中英

在PHP中重命名jpg文件

[英]Renaming jpg file in PHP

我有一个上传功能,其中我想检查数据库中是否有重复的文件名。 如果有,我想重命名jpg,以便要上传的照片仍然可以上传。

这是我想出的代码行:

$shuffled = "qwertyuiopasdfghjkZxcvbnm";
$shuffled = str_shuffle($shuffled); 
$shuffled = $shuffled.".jpg";
rename($this->filename,$shuffled);

我在这里使用shuffle函数以某种方式给随机的新文件名,我尝试使用其他步骤(例如preg_replace),但jpg文件本身已损坏。 有任何想法吗?

您的代码是:

$shuffled = "qwertyuiopasdfghjkZxcvbnm";
$shuffled = str_shuffle($shuffled); 
$shuffled = $shuffle.".jpg";
rename($this->filename,$shuffled);

第三行看起来应该是$ shuffled = $ shuffled。“。jpg”;

用这个:

copy($oldfilename,rand(10000000000,99999999999).".jpeg");
unlink($oldfilename);

文件名(不带扩展名)将是一个大于10000000000且小于99999999999的数字

新文件名中的扩展名在哪里???

例题

rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");

如果要使用随机文件名,请使用microtime()生成随机字符串。 更好的解决方案是:

if(is_file($filename))
{
$filenameSplit = explode('.', $filename);
$i = 1;
while(is_file($filenameSplit[0] . "($i)." . $filenameSplit[1]))
{
$i++;
}
$newFilename = $filenameSplit[0] . "($i)." . $filenameSplit[1];
rename($filename, $newFilename);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM