从Laravel中的S3下载使用PDF,而不是使用JPG

时间:2017-06-28 16:46:28

标签: php laravel amazon-s3

我使用以下代码:

$file = Storage::disk('s3')->getDriver()->readStream(attachmentPath().$attachment->filename);

return \Response::stream(function() use($file) {
    fpassthru($file);
    }, 200, [
        'Content-Type' => $attachment->mimetype,
        'Content-Description' => 'File Transfer',
        'Content-Disposition' => 'attachment; filename=' . $attachment->filename,
        'Content-Length' => $attachment->size
]);

使用的变量响应(以pdf或jpg为例):

  • " mime类型" (application / pdf or image / jpeg)
  • "文件名" (例如:240-ivlvei-pdf.pdf或240-zi1gdv-ddvj63hxsaqn0az.jpg)
  • "大小"以字节为单位

使用PDF,它可以很好地工作。

使用images / gif下载已损坏。

但无法弄清楚原因。我认为与标题或类似的东西有关。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用getObject方法并查看它是否有效(http://docs.aws.amazon.com/AmazonS3/latest/dev/RetrieveObjSingleOpPHP.html

                    $downloader = $s3->getObject(array(
                            'Bucket' => $bucket,
                            'Key'    => $object['Key'],
                            'SaveAs' => dirname(__FILE__)."/name_of_file.jpg"
                    ));