当我尝试使用具有laravel的介入图像库保存图像时,它可以正常工作,但是扩展名丢失了。
当我死掉并转储Image :: make()方法的输出时,我得到了这个:
object(Intervention\Image\Image)[304]
public 'resource' => resource(9, gd)
public 'type' => int 2
public 'width' => int 480
public 'height' => int 640
public 'dirname' => string '/tmp' (length=4)
public 'basename' => string 'phpJHlKbK' (length=9)
public 'extension' => null
public 'filename' => string 'phpJHlKbK' (length=9)
public 'mime' => string 'image/jpeg' (length=10)
protected 'original' => null
public 'encoded' => null
正在上传的文件有一个扩展名但我无法访问它,因为它认为一个文件不存在。有什么想法吗?
答案 0 :(得分:8)
介入影像医生说:
The current filename extension of the image file, if instance was created from file.
因此建议使用“mime'对于未知的'也许是Raw post数据图像文件:
$mime = $image->mime(); //edited due to updated to 2.x
if ($mime == 'image/jpeg')
$extension = '.jpg';
elseif ($mime == 'image/png')
$extension = '.png';
elseif ($mime == 'image/gif')
$extension = '.gif';
else
$extension = '';
答案 1 :(得分:0)
当您使用PHP上传文件时,它们会重命名为/tmp/phpJHlKbK
,因此没有可用的扩展程序。
然而,如果没有可用的扩展名,Intervention Image 2.0(上周发布)会检查MIME类型。