报错内容:
fopen() expects parameter 1 to be a valid path, bool given
分析解决方法
猜测执行文件移动的时候使用fopen方法传入出错
保存文件使用方法Filesystem::disk('public')->putFile()
,直接找到putFile方法
路径:\vendor\topthink\think-filesystem\src\filesystem\Driver.php
在129行使用了fopen
,参数使用了$file->getRealPath()
获取文件的绝对路径;$file
继承于SplFileInfo
类(具体可以看PHP文档),在服务器打了日志发现$file->getRealPath()
获取为空,百度查了下解决方法看的基本都是说给用户权限,因为我用的是虚拟主机为不是服务器,没法这样弄,看了PHP文档SplFileInfo
还提供获取文件的路径的方法getPathname
,测试了下上传成功问题解决,修改代码如下