Amazon S3中的PDF无法在Chrome中打开以查看

Yug*_*ais 3 pdf google-chrome amazon-s3 amazon-ec2

我有一个用PHP开发并托管在Amazon服务器中的网站。在服务器中上传的PDF文件无法在chrome浏览器中打开,但此pdf文件正在其他浏览器(互联网浏览器)中打开以供查看。在chrome中下载。我希望此pdf打开供查看。链接的代码是

<a href="<?php echo $filename;?>" target="_blank"><?php echo $data['File_Label'];?></a>
Run Code Online (Sandbox Code Playgroud)


网址:请点击这里

但是下面的文件正在打开以供浏览器使用chrome 请检查

Dek*_*kel 5

如果您希望浏览器将文件视为pdf,则应让他知道他的文件是pdf。这样做的方法是发送相关的标头:

Content-type: application/pdf
Run Code Online (Sandbox Code Playgroud)

发送的当前标头s3是:

Content-type: application/octet-stream
Run Code Online (Sandbox Code Playgroud)

由于您将文件上传到s3-您可以使用某些s3工具(例如Windows的s3cmd)在上传期间或之后为文件设置正确的mime类型。

根据您提供的文档链接,该putObjectFile功能已被弃用,但这是定义:

putObjectFile (string $file, string $bucket, string $uri, [constant $acl = S3::ACL_PRIVATE], [array $metaHeaders = array()], [string $contentType = null])
Run Code Online (Sandbox Code Playgroud)

如您所见-最后一个参数是contentType-因此您可以application/pdf在上传文件时将其设置为。
下载时将设置正确的标题。