Файл изображения не хочет загружать Laravel

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);
    }
};
0
задан Jonh 27 February 2019 в 23:50
поделиться

1 ответ

Мы используем заголовки, и у нас есть Laravel 5.1, но мы делаем что-то немного другое, когда мы на короткое время кэшируем наши файлы и создаем динамические изображения графиков с помощью плагина c3. В конце моего поста я покажу, как мы используем эти заголовки с кешем.

Убедитесь, что вы добавили маршрут:

Route::get('/files/projects/{file}', 'DownloadController@index');

См. Этот пост SO

$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]

См. Этот пост SO

[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);
0
ответ дан yardpenalty 27 February 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: