PHP – переместить файл в другую папку на сервере

Мне нужно разрешить пользователям на моем сайте удалять их изображения с сервера после их загрузки, если они больше не хотят их. Ранее я использовал функцию unlink в PHP, но с тех пор мне сказали, что это может быть довольно рискованно и проблема с безопасностью. (Предыдущий код ниже 🙂

 if(unlink($path.'image1.jpg')){ // deleted } 

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

 user/ 

а затем внутри этой папки, называемой del, которая предназначена для размещения своих нежелательных изображений:

 user/del/ 

Есть ли команда для перемещения файла в другую папку? Итак, скажите:

 user/image1.jpg 

перемещается в / становится

 user/del/image1.jpg 

Функция rename делает это

docs переименовать

rename('image1.jpg', 'del/image1.jpg');

Если вы хотите сохранить существующий файл в том же месте, вы должны использовать copy

копирование документов

copy('image1.jpg', 'del/image1.jpg');

Если вы хотите переместить загруженный файл, используйте файл move_uploaded_file , хотя это почти то же самое, что и rename этой функции, также проверяет, что данный файл является файлом, который был загружен через POST , это предотвращает, например, перемещение локального файла

docs move_uploaded_file

 $uploads_dir = '/uploads'; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = $_FILES["pictures"]["name"][$key]; move_uploaded_file($tmp_name, "$uploads_dir/$name"); } } 

код snipet из документов

Используйте функцию rename () .

 rename("user/image1.jpg", "user/del/image1.jpg");