我有一个在PHP 5.3.28上运行的laravel 4.1项目,我正试图找到一种方法,从某个每当我使用guessExtension()
时都会失败的图像中获取文件扩展名,如下所示:
$format = Input::file('image')->guessExtension();
我尝试上传的所有其他图像都使用guessExtension()
没有问题,但Symphony似乎无法识别该特定图像的mimeType
:
object(Symfony'Component'HttpFoundation'File'UploadedFile)[9]
private 'test' => boolean false
private 'originalName' => string 'herewithme.png' (length=14)
private 'mimeType' => string 'application/octet-stream' (length=24)
private 'size' => int 0
private 'error' => int 1
并且我的应用程序失败,并显示以下消息:
The file "" does not exist
我想做这样的事情:
$filename = Input::file('image')->getClientOriginalName();
if(strpos($filename, '.png') !== false)
{
$format = 'png';
}
elseif(strpos($filename, '.jpg') !== false)
{
$format = 'jpg';
}
然而,我担心一个文件可能会因为被命名为pdf.png.jpg
(或类似的东西)而引起问题,所以我对以这种方式获取文件格式感到犹豫。有人能想出更好的方法吗?
您可以使用substr来完成。
You can try $ext = substr($filename,-4);
也许可以试试:
Input::file('image')->getClientMimeType();
或
Input::file('image')->getMimeType();