Php 如果图片的文件名相同,上传时如何在图片中添加数字
我有这个代码可以上传Php 如果图片的文件名相同,上传时如何在图片中添加数字,php,image,file-upload,Php,Image,File Upload,我有这个代码可以上传 $file=$_FILES['image']['tmp_name']; $image= addslashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name= addslashes($_FILES['image']['name']); move_uploaded_file($_FILES["image"]["tmp_name"],"photo/" . $_FILES["image"]["name"
$file=$_FILES['image']['tmp_name'];
$image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name= addslashes($_FILES['image']['name']);
move_uploaded_file($_FILES["image"]["tmp_name"],"photo/" . $_FILES["image"]["name"]);
$location="photo/" . $_FILES["image"]["name"];
然后插入sql要添加的$location
代码
问题是如何添加我的图片文件名例如:如果我上传了“picture.jpg”,如果我将再次上传相同的文件名,文件名的输出将是picture(1).jpg,如果我再次上传相同的文件名,输出文件名将是picture(2).jpg,依此类推,我想要“()”若有增量,我将上传相同的文件名。提前感谢^^此代码未经测试,但我认为大致如下:
if (file_exists('path/to/file/image.jpg')){
$i = 1;
while (file_exists('path/to/file/image ('.$i.').jpg')){
$i++;
}
$name = 'image ('.$i.');
}
然后将图像保存到$name。(在某一点上会产生图像(2.jpg)试试这个
$path = "photo/" . $_FILES["image"]["name"];
$ext = pathinfo ($path, PATHINFO_EXTENSION );
$name = pathinfo ( $path, PATHINFO_FILENAME ] );
for($i = 0; file_exists($path); $i++){
if($i > 0){
$path = "photo/" .$name.'('.$id.').'.$ext;
}
}
echo $path;
这可以通过循环实现:
$info=pathinfo($_文件['image']['name']);
$i=0;
做{
$image_name=$info['filename']。($i?“:”)。“$info['extension'];
$i++;
$path=“photo/”$image\u name;
}而(文件_存在($path));
移动上传的文件($文件['image']['tmp\u名称],$path);
您还应清理输入文件名:
$time = time() + sprintf("%06d",(microtime(true) - floor(microtime(true))) * 1000000);
$new_name=$image_name.'_'.$time.'.'.$extension
您可以添加具有唯一时间戳(每纳秒不同)的图像名称,并生成唯一时间戳您可以尝试一下吗
$name = $_FILES['image']['name'];
$pathinfo = pathinfo($name);
$FileName = $pathinfo['filename'];
$ext = $pathinfo['extension'];
$actual_image_name = $FileName.time().".".$ext;
$location="photo/".$converted_name;
if(move_uploaded_file($tmp, $location))
{
}
谢谢你…^^这个工作对我来说,我还将检查字符串消毒剂