我正在尝试使用网址上传图片。它运作正常。图像可以正确上传,但如果图像已经存在则会覆盖文件 这是我的代码 -
$url=$d[1];
$name = basename($url);
$my_location='././assets/temp_upload/';
if (!defined('IMAGE_DIR')) define('IMAGE_DIR', $my_location);
if(!$img = file_get_contents($url))
{
die('Getting that file failed');
}
if(!$f = fopen(IMAGE_DIR.'/'.$name, 'w'))
{
die('Opening file for writing failed');
}
if (fwrite($f, $img) === FALSE)
{
die('Could not write to the file');
}
fclose($f);
我只想要,如果图像文件已经存在,则应更改其名称,以便图像不会覆盖。
请帮帮我
感谢。
答案 0 :(得分:1)
很简单,您可以在图像文件名的末尾添加随机字符串。
$name_temp = basename($url);
$my_location='././assets/temp_upload/';
if (file_exists($my_location.''.$name_temp)) {
$fileinfo = pathinfo($url);
$name=$fileinfo['filename'].'_'.rand(1,10000).''.$fileinfo['extension'];
}
else
{
$name=$name_temp;
}
您可以根据需要自定义此内容。