#php #laravel #amazon-s3 #laravel-8
#php #ларавель #amazon-s3 #ларавель-8
Вопрос:
В настоящее время я работаю над маршрутом для проекта, который мне нужен, чтобы получить определенный файл из S3, прочитать его содержимое и вернуть в двоичном виде. Я не могу просто использовать URL-адрес файла S3, потому что он закрытый и намеренный (мы просто не хотим, чтобы файлы корзины были открыты).
Но проблема в том, что я хочу транслировать его на новой странице, чтобы не было необходимости загружать файл.
Обслуживание:
$file = $this-gt;s3Provider-gt;getFileContents(false); // gets the file binary return $file;
Контроллер:
return response()-gt;streamDownload(function() use($file) { echo $file; // streams data to download it, but I want just to show the file... }, $filename);
Ответ №1:
Я думал, что вы используете Laravel, если да, то вы могли бы вернуть свое изображение вот так:
return response($file, $filename, [ 'Content-Type' =gt; 'image/png', 'Content-Length' =gt; filesize($file) ]);
Еще один способ, который я использую для возврата изображения, — это:
return response()-gt;file($path, array('Content-Type'=gt;'image/jpg'));
Content-Type
должен быть ваш тип изображения (JPG, PNG и т.д.).
Комментарии:
1. это именно то, что я искал, спасибо!