创建随机文件名但检查它是否尚未使用
Create random filename but check it's not already used
我正在尝试将图像文件上传到服务器并在上传时创建一个随机名称。我遇到的问题是,有时(太频繁)它会创建相同的文件名,但对于具有不同扩展名的文件。
我的上传代码如下,我想做的是添加一个检查以确保该名称未被使用但具有不同的扩展名。
示例 -
da4fb5c6e93e74d3df8527599fa62642.jpg & da4fb5c6e93e74d3df8527599fa62642.JPG
if ($_FILES['file']['name']) {if (!$_FILES['file']['error']){
$name = md5(mt_rand(100, 200));
$ext = explode('.', $_FILES['file']['name']);
$filename = $name . '.' . $ext[1];
$destination = $_SERVER['DOCUMENT_ROOT'] . '/images/infopages/' . $filename; //change this directory
$location = $_FILES["file"]["tmp_name"];
move_uploaded_file($location, $destination);
echo '/images/infopages/' . $filename;
}else{
echo $message = 'Ooops! Your upload triggered the following error: '.$_FILES['file']['error'];
}
}
感谢任何帮助。
您可以结合使用 PHP uniqid 和 rand 函数。这样你就永远不会得到重复的值。
$filename = uniqid (rand(1000000,9999999), true) '.' . $ext[1];
我正在尝试将图像文件上传到服务器并在上传时创建一个随机名称。我遇到的问题是,有时(太频繁)它会创建相同的文件名,但对于具有不同扩展名的文件。
我的上传代码如下,我想做的是添加一个检查以确保该名称未被使用但具有不同的扩展名。
示例 - da4fb5c6e93e74d3df8527599fa62642.jpg & da4fb5c6e93e74d3df8527599fa62642.JPG
if ($_FILES['file']['name']) {if (!$_FILES['file']['error']){
$name = md5(mt_rand(100, 200));
$ext = explode('.', $_FILES['file']['name']);
$filename = $name . '.' . $ext[1];
$destination = $_SERVER['DOCUMENT_ROOT'] . '/images/infopages/' . $filename; //change this directory
$location = $_FILES["file"]["tmp_name"];
move_uploaded_file($location, $destination);
echo '/images/infopages/' . $filename;
}else{
echo $message = 'Ooops! Your upload triggered the following error: '.$_FILES['file']['error'];
}
}
感谢任何帮助。
您可以结合使用 PHP uniqid 和 rand 函数。这样你就永远不会得到重复的值。
$filename = uniqid (rand(1000000,9999999), true) '.' . $ext[1];