GD生成验证码在win下Could not read font,困扰好多天了,丢到linux上面就正常了

使用gd生成验证码的时候,找不到字体
我之前用函数式封装的,正常使用
现在丢到laravel里改成了类,不行了
异常:imagettftext(): Could not read font
无法读取
如果是找不到文件的话应该是
异常:imagettftext(): Invalid font filename
确认文件名没有错
确认是绝对路径,尝试了D:PHPSpacenovelpublicfontcac.ttf
并且dd(is_file(var))是true
请大神再看看 我多放几张图片 描述详细一点
图片描述
图片描述
图片描述
图片描述
图片描述

图片描述

clipboard.png

阅读 5.1k
7 个回答

要写绝对路径。你以为代码和ttf在一个文件夹就是同级了。说不定你一请求,发现原来代码的默认地址是项目的public目录呢,所以,这种事情要写绝对路径

文件路径要写对,放个绝对路径

出现这个问题,一般有两种可能:
一、字体文件书写错误,例如,world.ttf写成了wrold.ttf,误差。
二、路径错误,用绝对路径。

var_dump(is_file($font_file));返回什么

楼上说的都对,你的路径写的有问题

新手上路,请多包涵

估计是文件的问题,你是复制粘贴里面的内容还是什么,我一开始是复制fontfile的内容然后新建一个文件粘贴上去,绝对路径、is_file(fontfile)都是正常的,然后就是打不开。。 后来直接复制文件过去,就ok了

我到底都没有发现问题出在哪里,于是我一气之下把操作系统换成了Ubuntu~~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题