通过HTMLPOST请求重命名文件夹

时间:2020-07-07 作者:Ali Hamdan

如果提交了HTML表单(用于编辑条目名称),我将尝试重命名uploads文件夹中的文件夹。

以下代码是我到目前为止所拥有的,但它不起作用。

if(isset($_POST[\'Edit_Client\']) == \'1\')

{

rename("/wp-content/uploads/Directory/Clients/$Client_Name/", "/wp-content/uploads/Directory/Clients/$New_Name/");

}
我尝试将整个路径的文件权限更改为777,但没有成功。

我试图要求一次wp配置和wp设置,但也没有成功

非常感谢。

1 个回复
最合适的回答,由SO网友:Sabbir Hasan 整理而成

为了重命名,您必须像下面这样修改代码。您的代码缺少目录的绝对路径。这就是你的代码不起作用的原因。正在添加ABSPATH 将修复代码。

rename( ABSPATH . "wp-content/uploads/Directory/Clients/$Client_Name", ABSPATH . "wp-content/uploads/Directory/Clients/$New_Name" );
为什么不使用WP_Filesystem_Direct. 这样更好更安全。通过将这些文件包含到functions.php

require_once(ABSPATH . \'/wp-admin/includes/class-wp-filesystem-base.php\');
require_once(ABSPATH . \'/wp-admin/includes/class-wp-filesystem-direct.php\');
现在,根据给定的代码,将其更改如下:

if(isset($_POST[\'Edit_Client\']) == \'1\'){
    $current = ABSPATH . "wp-content/uploads/Directory/Clients/$Client_Name";
    $destination = ABSPATH . "wp-content/uploads/Directory/Clients/$New_Name";

    WP_Filesystem_Direct::move($current,$destination);
}
WP_Filesystem_Direct 将自动检查任何更好的方法。它将首先尝试重命名。如果失败,它将复制并删除旧文件夹。

了解更多信息WP_Filesystem_Direct::move &;WP_Filesystem_Direct

相关推荐

仅将“the_content”中的单词替换为index.php

我有一些带有视频标签的帖子,其中包含自动播放(当你访问帖子页面时,它们应该自动播放)。我正在使用the_content 在索引页上显示这些视频。问题是,当您访问主页时,所有视频都会开始播放。我已使用以下功能将其删除:function replace_ap($text){ $replace = array( \'autoplay=""\' => \'\' ); $text = str_replace(array