Vil*_*lx- 8 php gd fatal-error
我有一段旧代码试图加载图像文件.由于它不知道它是什么类型,代码会尝试所有类型:
$res = @imagecreatefromjpeg($sourceName);
if ( $res === false)
$res = @imagecreatefromgif($sourceName);
if ( $res === false)
$res = @imagecreatefrompng($sourceName);
if ( $res === false) {
$err[] = 'Cannot load file as JPEG, GIF or PNG!';
Run Code Online (Sandbox Code Playgroud)
这曾经很长时间都能很好地工作,但是在最近的服务器迁移之后,它在使用PNG文件时停止工作(JPEG文件工作正常).调查显示,第一行产生致命错误:
致命错误:imagecreatefromjpeg():gd-jpeg:JPEG库报告不可恢复的错误:不是JPEG文件:以0x89 0x50开头
由于该行具有错误抑制运算符,因此脚本只是停止执行并返回带有空响应的HTTP 200.
我不明白的是......哇......怎么......为什么......从什么时候开始......
甚至官方文档都说这些函数FALSE在无法加载文件时返回,并且@那里也显示了带有运算符的构造.我在网上找不到任何可能会说"不是JPEG文件"是致命错误的内容.它提到的每个地方,都是一直以来的警告.为什么我现在会收到致命错误?
我的PHP是5.6.30,GD就是一切.
我想我可以回答我自己的问题。这是一个已知的错误。看到。PHP错误#73514和#73479。实际上,该错误已在libgd中,并且也已在该位置进行了报告。一个修复程序在去年十一月,但还没有去到一个释放。所以,是的...没有运气。我将尝试使用它getimagesize()来首先确定类型,然后使用适当的函数。对于真正损坏的文件,这仍然无济于事,但这是有的。
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |