thinkphp5 使用unlink()函数删除文件失败

山橘月喵 2020-04-28 10:16:07
这个是我控制器里写的



这是模型层的方法



执行之后是没有报错的,数据可以删掉,但是文件依然存在 我也找过原因,地址打印的也是对的,就是unlik();的问题。

我还做了一下措施:

1.有人说权限问题,但我是windows的localhost本地写的代码,按理来说没有权限问题,但为了保险我还是把文件夹右键属性设置了权限为完全控制,但是删除操作仍然失败

2.有人说把‘\’换成‘/’,我试了,失败

3.甚至有人说unlink前面加个@,试了,仍然失败

还有很多方式都试过了,就是删除不掉

然后现在,特别心塞,我已经想不出还有啥办法了,望各位大神指导指导,不然要数不着觉了::>_<::
...全文
647 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
强仔! 2020-04-30
  • 打赏
  • 举报
回复
引用 10 楼 东威林 的回复:
是的 是绝对路径,现在已经可以获取到了图片,但是依然unlink删除不掉,文件依然存在



返回的是111, 也算又进了一步


那之前改的$this可能是因为 路径不对,因为你之前不是222吗 ,你现在改成$this 试试呢
山橘月喵 2020-04-30
  • 打赏
  • 举报
回复
是的 是绝对路径,现在已经可以获取到了图片,但是依然unlink删除不掉,文件依然存在 返回的是111, 也算又进了一步
强仔! 2020-04-30
  • 打赏
  • 举报
回复
引用 7 楼 东威林 的回复:
我好像慢慢的快找到原因了



现在的情况是 返回222, 判断的事图片不存在,不过打印的路径是对的,复制路径在浏览器打开也是可以看的,

然后权限没问题,现在就是判断是不存在的,总算有点前进了,但是还是不清楚到底什么原因导致的判断不存在。


file_exists()这个函数返回的是false 那肯定路径有问题,是绝对路径吗?
山橘月喵 2020-04-29
  • 打赏
  • 举报
回复
可以找到路径的,数据库也可以成功删除,就是uploads里的图片依然存在,是这个情况
山橘月喵 2020-04-29
  • 打赏
  • 举报
回复
现在用@getimagesize 这个获取图片的方法已经可以获取到图片了 但是又删除不了 现在是这个情况
山橘月喵 2020-04-29
  • 打赏
  • 举报
回复
我好像慢慢的快找到原因了 现在的情况是 返回222, 判断的事图片不存在,不过打印的路径是对的,复制路径在浏览器打开也是可以看的, 然后权限没问题,现在就是判断是不存在的,总算有点前进了,但是还是不清楚到底什么原因导致的判断不存在。
yaofare 2020-04-29
  • 打赏
  • 举报
回复
unlink是有返回值的 你打印下返回值看看
强仔! 2020-04-28
  • 打赏
  • 举报
回复
而且你说没有报错吗?开F12看下unlink()的执行请求,应该会报路径错误吧。
强仔! 2020-04-28
  • 打赏
  • 举报
回复
找到文件:/thinkphp/library/think/cache/driver/File.php
然后重写unlink方法(拷贝到所在的控制器下的)

你用的是TP框架吧,应该用$this->unlink();
直接写unlink()是PHP的方法不是框架的方法
强仔! 2020-04-28
  • 打赏
  • 举报
回复
你的错误提示是什么
unlink(../cache/runtime/xxx.php):No sunch file or directory的错误。
找不到路径吗?

华发不华 2021-09-03
  • 举报
回复
@强仔! 你这个不会内存溢出??
山橘月喵 2020-04-28
  • 打赏
  • 举报
回复
找到文件:/thinkphp/library/think/cache/driver/File.php 然后重写unlink方法(拷贝到所在的控制器下的) 你用的是TP框架吧,应该用$this->unlink(); 直接写unlink()是PHP的方法不是框架的方法 我按照您的方法 也用了https://www.jianshu.com/p/802a942f0210 这个文章的方法 重写 引用 use think\File; /** * 判断文件是否存在后,删除 * @param $path * @return bool * @author byron sampson <xiaobo.sun@qq.com> * @return boolean */ private function unlink($path) { return is_file($path) && unlink($path); } 加$this-> 都不可以 显示删除失败

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧