Wordpress/PHP- 取消链接文件搜索目录不包含文件路径
Wordpress/PHP- Unlink file search directory does not contain file path
我目前正在尝试创建一个功能,允许某些管理用户删除我们 Wordpress 网站上的帖子。更具体地说,直接从 Wordpress 媒体库中删除文件。我可以按类型成功检索这些文件并显示它们的名称,但是每当我尝试使用 unlink() 方法从使用中删除一些文件时,它会搜索与 php 脚本相关的文件而不是服务器。我试过使用 $_SERVER['DOCUMENT_ROOT'] 并重复添加“../”以便返回足够多的目录然后正确指定文件路径,但是这两个选项都不起作用。我也不能为 unlink() 使用 $context 参数,因为 php 版本不是最新的,目前更新它是不可行的。这是我的一些代码:
foreach($imgs as $img){
$imgcutpath = substr($img, 0, 33);
fopen($img, "r");
$imgpath = str_replace($imgcutpath, "", $img);
echo "<a href='?delete=1'> Delete</a>";
if (isset($_GET['delete']))
{ unlink($_SERVER['DOCUMENT_ROOT'] . $imagepath); }
}
这也是我收到的警告:
Warning: unlink(/path/to/file/from/server): Is a directory in
/path/to/php/file/running/this/code/from/server/phpfile.php on line 28
这不完全是警告,出于安全原因,我只是替换了实际的文件路径。感谢您的帮助!
如果您知道如何相对地访问该文件,则可以使用 PHP 的 realpath() 函数将其转换为规范路径。
话虽这么说,我认为您的做法是错误的,而不是依赖于 WordPress 中手头的库。在您的代码片段中,您是否有权访问文件的附件 ID?
如果您知道 ID,您可以利用 wp_delete_attachment() 取消链接媒体库文件。
如果您有 post ID 而不是附件 ID,则可以将 get_attached_media() 与 post ID 一起使用,它会给出您可以迭代的附件 ID .
除了删除文件之外,还有 更多 需要考虑。对该文件的引用存储在数据库中,并且该引用链接到其他内容。使用 WordPress 中可用的工具意味着它将正确处理所有清理工作,而不是您手动进行。
我目前正在尝试创建一个功能,允许某些管理用户删除我们 Wordpress 网站上的帖子。更具体地说,直接从 Wordpress 媒体库中删除文件。我可以按类型成功检索这些文件并显示它们的名称,但是每当我尝试使用 unlink() 方法从使用中删除一些文件时,它会搜索与 php 脚本相关的文件而不是服务器。我试过使用 $_SERVER['DOCUMENT_ROOT'] 并重复添加“../”以便返回足够多的目录然后正确指定文件路径,但是这两个选项都不起作用。我也不能为 unlink() 使用 $context 参数,因为 php 版本不是最新的,目前更新它是不可行的。这是我的一些代码:
foreach($imgs as $img){
$imgcutpath = substr($img, 0, 33);
fopen($img, "r");
$imgpath = str_replace($imgcutpath, "", $img);
echo "<a href='?delete=1'> Delete</a>";
if (isset($_GET['delete']))
{ unlink($_SERVER['DOCUMENT_ROOT'] . $imagepath); }
}
这也是我收到的警告:
Warning: unlink(/path/to/file/from/server): Is a directory in
/path/to/php/file/running/this/code/from/server/phpfile.php on line 28
这不完全是警告,出于安全原因,我只是替换了实际的文件路径。感谢您的帮助!
如果您知道如何相对地访问该文件,则可以使用 PHP 的 realpath() 函数将其转换为规范路径。
话虽这么说,我认为您的做法是错误的,而不是依赖于 WordPress 中手头的库。在您的代码片段中,您是否有权访问文件的附件 ID?
如果您知道 ID,您可以利用 wp_delete_attachment() 取消链接媒体库文件。
如果您有 post ID 而不是附件 ID,则可以将 get_attached_media() 与 post ID 一起使用,它会给出您可以迭代的附件 ID .
除了删除文件之外,还有 更多 需要考虑。对该文件的引用存储在数据库中,并且该引用链接到其他内容。使用 WordPress 中可用的工具意味着它将正确处理所有清理工作,而不是您手动进行。