問題
PHPのアップロードでファイル名の重複を防ぎたい。
解決策
「file_exists」でそのファイル名があるかどうかの判定で数値を足しながら繰り返し処理を行い、存在しなかった段階の数値を連番としてファイル名の最後に付けてアップロード処理を行う。
アップロード時のファイル名の重複
PHPのアップロードでファイル名の重複を防ぐ方法をご紹介します。
数値を足しながら繰り返し処理を行う。
「file_exists」でそのファイル名があるかどうかの判定で数値を足しながら繰り返し処理を行い、存在しなかった段階の数値を連番としてファイル名の最後に付けてアップロード処理を行うことで、ファイル名の重複を防ぐことができます。
$basename = './filepath/filename';
$fileName = $basename;
$i = 0;
while(file_exists( $fileName . '.jpg' )){
$fileName = $basename . '_' . $i;
$i++;
if($i>100){
break;
}
}
return $fileName . '.jpg';
参照
【php ファイル作成の小ワザ|同じ名前のファイルがある場合の処理 – shangtian’s blog】
https://www.shangtian.tokyo/entry/2019/02/12/220606
コメント