Как переместить файл в другую папку с помощью 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
пример для используемого значения$:
../изображения/загрузки/temp / IMG_0002.формат JPG
и пример $target_path, который используется:
../изображения/загрузки/листеры/186 / IMG_0002.формат JPG
Я вижу файл, сидящий в папке temp, оба этих пути выглядят хорошо для меня, и я проверил, чтобы убедиться, что функция mkdir действительно создала папку, которую она сделала хорошо.
Как переместить файл в другую папку с помощью php?
1 ответов
когда я читаю ваш сценарий, похоже, что вы обработали загрузку и переместили файлы в папку "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