删除使用wp_pload_its()函数上传的文件

时间:2016-08-08 作者:István

我在WordPress中使用

wp_upload_bits()
功能。这是我的代码我是怎么做的

 $upload = wp_upload_bits($_FILES[\'portfolio_img\'][\'name\'][$i], null, file_get_contents($_FILES[\'portfolio_img\'][\'tmp_name\'][$i]));
   if(isset($upload[\'error\']) != false ) {
   $portfolio_imgs[] = $upload[\'url\'];
   add_post_meta($id, \'portfolio_imgs\', $portfolio_imgs);
   update_post_meta($id, \'portfolio_imgs\', $portfolio_imgs);
 }
我想允许管理员删除后端上传的图像。我做了这个选项,它删除了元信息,我还可以获得图像的绝对url,例如:

http://localhost/wordpress/wp-content/uploads/2016/08/road.jpg
但是我不能使用

unlink()
用于绝对URL的PHP函数。我尝试将URL转换为相对路径,但即使得到如下相对路径,也无法使其工作:

/wp-content/uploads/2016/08/road.jpg

wp-content/uploads/2016/08/road.jpg
我总是会遇到以下错误:

警告:取消链接(/wp-content/uploads/2016/08/road.jpg)[函数.取消链接]:在/home/…中没有这样的文件或目录。。。

我真的被困在这里了,任何帮助都是值得的!

1 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

在代码段中$upload[\'file\'] 将包含文件的完整文件路径。您可以将其保存在meta中,以便在需要删除文件时可以检索。