thinkphp中failed to open stream
先让那个我们看一下完成的报错信息:
然后说明一下,这个问题的解决办法并不值得借鉴。
环境: Ubuntu16.04, lampp, php7
初次猜测
当然遇到这种问题我们首先想到的是文件权限问题。所以首先我修改了相应目录的权限:
然后发现问题仍没有解决。然后百度了一下,发现大部分的说法也都是文件没有相应的权限。
查看代码
大致看了一下,temp
文件下面是用来临时存放文件的。所以我们知道我们上传的图片应该是临时存到了temp
文件下面,然后再通过$file
中的move()
修改文件保存路径。
然后我们通过打断点发现了一个问题,当第一次调用这个方法的时候,我们发现是有一个临时文件的
然后我们点击继续的时候发现还是会再走一遍这个方法,然后文件已经不存在了,所以就会报错。
所以我们的解决办法就是在/thinkphp/thinkphp/library/think/File.php
文件中加入以下代码:
|
|
然后File
的构造方法就会变成:
总结
因为我们修改了框架里的内容,我们知道这种方法只是饮鸩止渴,所以这一定不是解决这个问题的根本方法,所以需要我们继续研究这个问题。