Доброе утро всем,
Мой вопрос прост: я использую Flysystem (на Symfony) для восстановления ресурса из S3 (через DigitalOcean).Я хотел бы иметь возможность вернуть его для загрузки пользователю.Вот мой код:
$client = new S3Client([
'credentials' => [
'key' => '',
'secret' => '',
],
'region' => '',
'version' => 'latest',
'endpoint' => 'https://ams3.digitaloceanspaces.com',
]);
$adapter = new AwsS3Adapter($client, '');
$filesystem = new Filesystem($adapter);
$filename = 'file.png';
$stream = $filesystem->readStream('file.png');
$contents = stream_get_contents($stream);
fclose($stream);
$response = new Response($stream);
$disposition = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
$filename
);
$response->headers->set('Content-Disposition', $disposition);
return $response;
=> Файл поврежден ...
Есть идеи?Большое спасибо за вашу помощь.Гийом
ОБНОВЛЕНИЕ Когда я проверяю с помощью текстового файла, я получаю содержимое моего файла, но с заголовком:
HTTP/1.1 200 OK
Date: Thu, 27 Sep 2018 06:59:35 GMT
Server: Apache/2.4.29 (Ubuntu)
Vary: Authorization,Accept-Encoding
Cache-Control: no-cache, private
Content-Disposition: attachment; filename=toto.png
Link: <http://localhost/api/public/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"
Content-Length: 517
Content-Type: text/html; charset=UTF-8
Любые идеи, чтобы загрузить только содержимое файла, и для всех типов файлов?Большое спасибо за все, Гийом