2017-02-22 42 views
0

У меня есть раскрывающийся список, который генерирует все файлы в папке, которая работает. Но я хотел бы видеть только файлы .jpg, а также хотел бы исключить один файл из списка, так как это изображение владельца места позволяет называть его «0001_Place_Holder.jpg».PHP - Создание выпадающего списка Список изображений -> Скопировать изображение в новое Dir -> Удалить оригинальное изображение

Вторая часть этого заключается в том, что я хочу выбрать файл из раскрывающегося списка и скопировать его в новую папку, а затем удалить исходное изображение.

это "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>'; 
?> 

Это "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."; 
} 
} 
?> 
+0

И что это ошибка? – Oliver

+0

он попадает в штамп («Невозможно скопировать») в строке «Копировать» – Nrodgers1987

+1

Попробуйте использовать абсолютные пути. Вы установили разрешения для своей папки? Если есть исключение, вы должны найти его в своих лог-файлах. – Oliver

ответ

0

Вы должны проверить имя файла, если его расширение равно jpg, и если оно не совпадает с вашим именем-заполнителем.

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

Для второй проблемы: попробуйте установить права доступа к папке 777 для целей тестирования. Также повторяйте строки, которые вы передаете, чтобы скопировать (string1, string2), чтобы проверить, что там что-то не так.

0

Прежде всего, спасибо за ваши ответы и помощь. Alex Odenthal, который работал на 1-ю часть. Я попробовал все, чтобы 2-я часть работала. Я, наконец, переписал его по-другому, и теперь он работает, я, должно быть, что-то не так.

Вот мой фиксированный "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."; 
      } 
     } 


?>