PHP - 生成图像下拉列表 -> 将图像复制到新目录 -> 删除原始图像

PHP - Generate dropdown List of images -> Copy image to new Dir -> Delete original image

我有一个下拉列表,可以生成一个文件夹中的所有文件,它可以正常工作。但我只想看到 .jpg 文件,而且我想从列表中排除一个文件,因为它是一个占位符图像,我们称之为“0001_Place_Holder.jpg”。

第二部分是我想从下拉列表中选择一个文件并将其复制到新文件夹,然后删除原始图像。

这是 "move_files_general.php" // 它生成我的下拉列表

<?php
$dirname = "general_2";
$dir = opendir($dirname);
echo '<form action="move_general.php" method="get">';
echo '<select name="file2">';
while(false != ($file = readdir($dir)))
{
    if(($file != ".") and ($file != ".."))
    {
        echo "<option value=".$file.">$file</option>";
    }
}
echo '</select>';
echo '<input type="submit" value="Move To Quality" class="submit" />';
echo '</form>';
?>

This is "move_general.php" // 应该复制文件然后删除原始文件

<?php
$dirpath = "general_2";
$dirpath_2 = "quality_2";
$file_to_move = $_GET['file2'];
copy("$dirpath.'/'.$file_to_move", "$dirpath_2.'/'.$file_to_move") or       die("Unable to copy");
if (copy("$dirpath.'/'.$file_to_move", "$dirpath_2.'/'.$file_to_move")) {
unlink("$dirpath.'/'.$file_to_move");
    if ( unlink ($dirpath.'/'.$file_to_move) ) {
            echo $file_to_move . " deleted.";
        echo '<script>parent.window.location.reload(true);</script>';
    } else {
    echo "Error.";
}
}
?>

如果扩展名是 jpg 并且它不等于您的占位符名称,您将测试文件名。

if(($file != ".") and ($file != "..") and ($file != "0001_Place_Holder.jpg"))
{
    if(pathinfo($file, PATHINFO_EXTENSION) ==='jpg'){
        echo "<option value=".$file.">$file</option>";
    }
}

第二个问题:尝试将文件夹权限设置为777进行测试。同时回显您传递给 copy(string1,string2) 的字符串,以检查其中是否有问题。

首先,感谢您的回答和帮助。 Alex Odenthal,在第 1 部分中发挥了作用。我尽了一切努力让第二部分工作。我终于以不同的方式重写了它,它现在可以工作了,我一定是在某个地方出了什么问题。

这是我的修复"move_files_general.php"

<?php
$dirname = "general";
$dir = opendir($dirname);
echo '<form action="move_general.php" method="get">';
echo '<select name="file2">';
while(false != ($file = readdir($dir)))
{
    if(($file != ".") and ($file != "..") and ($file != "0001_Place_Holder_DO_NOT_DELETE.jpg"))
    {
if(pathinfo($file, PATHINFO_EXTENSION) ==='jpg'){
    echo "<option value=".$file.">$file</option>";

}
}

}
echo '</select>';
echo '<input type="submit" value="Move To Quality1" class="submit" />';
echo '</form>';
?>

这是我的修复"move_general.php"

<?php
$file_to_move = $_GET['file2'];
$source = "general/$file_to_move";
$dest = "quality/$file_to_move";
copy($source, $dest);
if (copy($source, $dest)) {
    unlink($source);
            if(file_exists($source)) {
            unlink($source); }
    else {
            echo "Deleted.";
            }
        }


?>