Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
if (s1 == s2) {
return 0;
}
if (s1 == null) {
return -1;
}
if (s2 == null) {
return 1;
}
return s1.compareToIgnoreCase(s2);
}
};
Мы используем заголовки, и у нас есть Laravel 5.1, но мы делаем что-то немного другое, когда мы на короткое время кэшируем наши файлы и создаем динамические изображения графиков с помощью плагина c3. В конце моего поста я покажу, как мы используем эти заголовки с кешем.
Убедитесь, что вы добавили маршрут:
Route::get('/files/projects/{file}', 'DownloadController@index');
$file= public_path(). $name;
Laravel < 5
$headers = array(
'Content-Type: image/jpeg',
);
return Response::download($file, $name.'jpg', $headers);
Laravel> = 5
return response()->download($file, $name."jpg");
ПРИМЕЧАНИЕ: Вот реализация кэшированного изображения ... ( обратите внимание на код base64_en для двоичных файлов, т. е.: .png .jpg)
$responseHeaders = array(
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-Type' => 'image/png',
'Content-Disposition' => 'attachment; filename=' . $outputFileName . '.png',
'Expires' => '0',
'Pragma' => 'public'
);
$url = action('DownloadController@standAlone', ['cat' => $category]);
// Values cached for 1 minute... ???
if (Cache::has($url)){
return Response(base64_decode(Cache::get($url)))->withHeaders($responseHeaders);
} else {
$maxWidth = 2560;
$maxHeight = 854;
$minWidth = 780;
$minHeight = 260;
if ($height > $maxHeight) {
$height = $maxHeight;
}
if ($height < $minHeight) {
$height = $minHeight;
}
if ($width > $maxWidth) {
$width = $maxWidth;
}
if ($width < $minWidth) {
$width = $minWidth;
}
$command = app_path('bin/phantomjs');
$command .= ' ' . app_path('bin/maketrendpng.js');
$command .= ' ' . escapeshellarg($url);
$command .= ' /dev/stdout';
$command .= ' ' . escapeshellarg($height);
$command .= ' ' . escapeshellarg($width);
$command .= ' ' . request()->server->get('SERVER_NAME');
$command .= ' ' . escapeshellarg( Мы используем заголовки, и у нас есть Laravel 5.1, но мы делаем что-то немного другое, когда мы на короткое время кэшируем наши файлы и создаем динамические изображения графиков с помощью плагина c3. В конце моего поста я покажу, как мы используем эти заголовки с кешем.
Убедитесь, что вы добавили маршрут:
[110] [111] Laravel < 5
[112] Laravel> = 5
[113] ПРИМЕЧАНИЕ: Вот реализация кэшированного изображения ... ( обратите внимание на код base64_en для двоичных файлов, т. е.: .png .jpg)
[114]COOKIE[env('SESSION_COOKIE', 'laravel_session')]);
$command .= ' ' . escapeshellarg(env('SESSION_COOKIE', 'laravel_session'));
$handle = popen($command, 'r');
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
pclose($handle);
Cache::put($url, base64_encode($contents), 1);
return Response($contents)->withHeaders($responseHeaders);