2016-03-15 2 views
1

Я использовал file_get_contents, чтобы получить изображение с удаленного сервера. Прежде чем что-либо сделать, мне нужно проверить, является ли файл jpeg или нет.Получить тип mime в Laravel удаленного файла

Попытка с:

$file = file_get_contents('http://server.com/images/new.jpg'); 
$mimetype = Storage::mimeType(basename($file)); 
echo $mimetype; 

Но все это возвращается в directory

Как получить MimeType из удаленного файла?

ответ

2

Вы можете получить по телефону запрос голову:

$headers=get_headers("http://server.com/images/new.jpg"); 

Это будет возвращать данные головы, и вы можете получить тип содержимого оттуда.

dd($headers); и получить данные, которые вы хотите

Например:

$headers=get_headers("https://d13yacurqjgara.cloudfront.net/users/1039396/screenshots/2584581/4_1x.png"); 
dd($headers); 

возвращается:

array:16 [▼ 
    0 => "HTTP/1.1 200 OK" 
    1 => "Content-Type: image/png" 
    2 => "Content-Length: 59913" 
    3 => "Connection: close" 
    4 => "Date: Tue, 15 Mar 2016 18:04:38 GMT" 
    5 => "x-amz-version-id: 7G..R3PteLad69jfLdbqN1FcyPDt2cGf" 
    6 => "Expires: Thu, 12 Mar 2026 00:00:15 GMT" 
    7 => "Cache-Control: max-age=315576000" 
    8 => "Last-Modified: Sat, 12 Mar 2016 02:38:29 GMT" 
    9 => "ETag: "f525b704270fa860869ce186fcf12de8"" 
    10 => "Accept-Ranges: bytes" 
    11 => "Server: AmazonS3" 
    12 => "Age: 32" 
    13 => "X-Cache: Hit from cloudfront" 
    14 => "Via: 1.1 5ec64d9502b4a51a283c9c8c16414219.cloudfront.net (CloudFront)" 
    15 => "X-Amz-Cf-Id: ITHcrpnzBuzGuJsEXgI2uZ4YGx3iA_LoAAx36y4ghHDrOxo2VVRXSA==" 
] 
+0

я сделал, если заявление, как 'если (in_array (" Content-Type: Изображение/jpeg ', $ headers)), и он работал как шарм. Thanx! –

Смежные вопросы