我需要一些PHP逻辑方面的帮助。我正在将图像添加到已存在某些图像的目录中。我正试图遍历目录并跳过名称,如果它们存在......很难解释......这就是我所拥有的:
if(isset($_POST['imgName'])){
$artName = $_POST['imgName'];
if ($_FILES['file']['name'][0] != ""){
$num = 0;
for ($i=0; $i < count($_FILES['file']['name']); $i++){
$fileExt = str_replace("image/", ".", $_FILES['file']['type'][$i]);
$newFileName = "..//images/$num$artName$fileExt";
if (file_exists($newFileName)){
$num++;
$newFileName = "..//images/".$num.$artName.$fileExt;
move_uploaded_file($_FILES['file']['tmp_name'][$i], $newFileName);
}
}
}
}
我尝试做一个while循环和一个while循环,我无法让它工作......也许我做错了。我可以请一些建议吗?感谢...
这是一个博客,所以$ artName是文章名称... $ num [0]将是主要图像,其余将是图库图像
答案 0 :(得分:0)
解决方法解决方案:
if(isset($_POST['imgName'])){
$artName = $_POST['imgName'];
if ($_FILES['file']['name'][0] != ""){
$pics = glob('..//images/*'.$artName.'*');
if($pics[0] != ""){
for($j=0; $j<count($pics); $j++){
$path = pathinfo($pics[$j]);
$ext = $path['extension'];
rename($pics[$j], "..//images/".$j.$artName.".".$ext);
}
}
$num = count($pics);
for ($i=0; $i < count($_FILES['file']['name']); $i++){
$fileExt = str_replace("image/", ".", $_FILES['file']['type'][$i]);
$newFileName = "..//images/$num$artName$fileExt";
move_uploaded_file($_FILES['file']['tmp_name'][$i], $newFileName);
$num++;
}
}
}
我提出的解决方法是检查与文章相关的图像,这些图像已经在目录中并重命名。然后使用计数(目录中的图像)并将其设置为$ num并使用$ num作为新图像名称的一部分......这样就没有重复项了。这是一个更好的解决方案,我很乐意听到它......