在windows环境下多图上传正常。但是部署到Linux下时目录可写的情况下上传图片会报 SplFileObject 错误。
当调用如下代码时候系统会报异常。
解决
1、进入\thinkphp\library\think\File.php文件打开 在构造函数的初始化的时候会获取文件信息。
2、因未知原因导致文件被删除,然后接着获取文件信息而报错。实际上,文件已经正常无误移动到指定目录。为了兼容这种异常,我们需要再一次判断文件是否存在。修改代码如下
if(file_exists($filename)) {
parent::__construct($filename, $mode);
$this->filename = $this->getRealPath() ?: $this->getPathname();
}