Мне нужно разрешить пользователям на моем сайте удалять их изображения с сервера после их загрузки, если они больше не хотят их. Ранее я использовал функцию 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");