Как перенести файл в другую папку с помощью php?

У меня есть форма загрузки, в которой пользователи могут загружать изображения, которые в настоящее время загружаются в папку, которую я сделал с именем temp, и их местоположения сохраняются в массиве с именем $ _SESSION ['uploaded_photos']. Когда пользователь нажимает кнопку «Следующая страница», я хочу, чтобы она перемещала файлы в новую папку, динамически создаваемую до этого.

if(isset($_POST['next_page'])) { if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) { mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']); } foreach($_SESSION['uploaded_photos'] as $key => $value) { $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/'; $target_path = $target_path . basename($value); if(move_uploaded_file($value, $target_path)) { echo "The file ". basename($value). " has been uploaded<br />"; } else{ echo "There was an error uploading the file, please try again!"; } } //end foreach } //end if isset next_page 

Примером используемого значения $ является:

../images/uploads/temp/IMG_0002.jpg

И пример используемого $ target_path:

../images/uploads/listers/186/IMG_0002.jpg

Я могу видеть файл, сидящий в папке temp, оба из этих путей выглядят хорошо для меня, и я проверил, чтобы убедиться, что функция mkdir фактически создала папку, в которой все было хорошо.

Как перенести файл в другую папку с помощью php?

    Когда я прочитал ваш сценарий, похоже, что вы обработали загрузку и переместили файлы в папку «temp», и теперь вы хотите переместить файл, когда они выполняют новое действие (нажав кнопку «Далее»).

    Что касается PHP, то файлы в вашем «temp» больше не загружаются, поэтому вы больше не можете использовать move_uploaded_file.

    Все, что вам нужно сделать, это переименовать :

     if(isset($_POST['next_page'])) { if (!is_dir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id'])) { mkdir('../images/uploads/listers/'.$_SESSION['loggedin_lister_id']); } foreach($_SESSION['uploaded_photos'] as $key => $value) { $target_path = '../images/uploads/listers/'.$_SESSION['loggedin_lister_id'].'/'; $target_path = $target_path . basename($value); if(rename($value, $target_path)) { echo "The file ". basename($value). " has been uploaded<br />"; } else{ echo "There was an error uploading the file, please try again!"; } } //end foreach } //end if isset next_page