首页 > 解决方案 > 重命名服务器文件错误(http 包装器不支持重命名)[PHP]

问题描述

在我的页面上,用户可以上传文档,这些文档将保存在用户特定的文件夹中。目录存储在 url:http://localhost/folder/user/documentA_user_timestamp.ext数据库中。

用户还可以删除文件,这会删除数据库中的文件条目,但我希望将文件移动到指定的存档文件夹。但是,当 php rename() 尝试执行其工作时,我总是收到此错误消息:

http wrapper 不支持重命名...

我似乎无法理解错误消息并找出它的原因

$filepath = $_POST['file'];
$archivePath = FILESYS_DOCS_ARCHIVE . basename($filepath);

if (!file_exists(FILESYS_DOCS_ARCHIVE)){
    mkdir(FILESYS_DOCS_ARCHIVE, 0777);
}

$success = rename($filepath, $archivePath);

if ($success){
    echo "SUCCess";
} else {
   echo $archivePath;
}

标签: phpfilerename

解决方案


用这个

$dir = str_replace('http://','',base_url()); rename($dir.'旧文件名', $dir.'/新文件名')


推荐阅读