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.";
}
}
?>
我有一个下拉列表,可以生成一个文件夹中的所有文件,它可以正常工作。但我只想看到 .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.";
}
}
?>