Comparing to ColdFusion, which automatically renames a file upon
upload in case the file already exists, php unfortunately does not
provide any function doing so. This tutorial shows how to create a
very simple function that adds a randomly generated prefix to the
file name.
We are going to slightly modify the upload function that I wrote
in my previous tutorial see: Multiple Files
Upload.
Below is a function that generates the random prefix:
function generate_file_prefix ($num_of_digits) {
$numbers="0123456789";
mt_srand((double)microtime()*1000000);
$prefix="";
if($length>0) {
while(strlen($prefix)<$num_of_digits) {
$prefix.=$numbers[mt_rand(0, strlen($numbers)-1)];
}
}
return $prefix;
}
All we have to do now is modify the bit of file upload, so when
the file is detected rather than using unlink() to removes it, we
may call above function to rename the file by adding an additional
prefix and upload in normal manner.
if (file_exists($filePath)) {
$currentFile = simpleRandNum(3).$currentFile;
$filePath = $uploadDir . $currentFile;
}
}