• 0
  • 0

tp5多图上传报错:SplFileobject::__construct(/tmp/php0VHOs6): failed to open stream: No such file or directory

2019-05-08 1847 0 admin 所属分类:ThinkPHP

在windows环境下多图上传正常。但是部署到Linux下时目录可写的情况下上传图片会报 SplFileObject 错误。

当调用如下代码时候系统会报异常。

$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');

进入\thinkphp\library\think\File.php文件打开 在构造函数的初始化的时候会获取文件信息。


因未知原因导致文件被删除,然后接着获取文件信息而报错。实际上,文件已经正常无误移动到指定目录。为了兼容这种异常,我们需要再一次判断文件是否存在。代码如下

if(file_exists($filename)){
      parent::__construct($filename, $mode);
      $this->filename = $this->getRealPath() ?: $this->getPathname();
}


返回顶部