一尘不染

PHP-将文件移至服务器上的其他文件夹

php

如果他们不再需要我的网站上的用户,则在他们上载图像后,需要允许他们从服务器上删除它们的图像。我以前unlink在PHP中使用该函数,但此后被告知这可能具有很高的风险和安全性。(下面的先前代码:)

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

相反,我现在只想将文件移动到其他文件夹中。他们必须先上传文件很长时间,然后才能登录帐户。如果我有存储用户图像的主文件夹:

user/

然后在其中一个名为del的文件夹中放置不需要的图像:

user/del/

是否有命令将文件移动到其他文件夹?这样说:

user/image1.jpg

移至/成为

user/del/image1.jpg

阅读 313

收藏
2020-05-26

共1个答案

一尘不染

rename功能做到这一点

docs重命名

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

如果要将现有文件放在同一位置,则应使用 copy

docs复制

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");
    }
}

来自文档的代码片段

2020-05-26