我有一个用 PHP 开发并托管在亚马逊服务器上的网站。服务器上传的 PDF 文件无法在 Chrome 浏览器中打开查看,但此 pdf 文件可以在其他浏览器(Internet Explorer)中打开查看。在chrome中它是下载的。我希望此 pdf 文件可供查看。链接代码是
<a href="<?php echo $filename;?>" target="_blank"><?php echo $data['File_Label'];?></a>
URL: 请点击这里 http://idtc-icai.s3.amazonaws.com/download/3.%20Collated%20Suggestions%20submitted%20on%20Draft%20Rules.pdf
但下面的文件正在打开以在 Chrome 中查看请检查这个 http://idtc-icai.s3.amazonaws.com/download/the_constitution_2016.pdf
如果您希望浏览器将文件视为 pdf,您应该让他知道他的文件是 pdf。这样做的方法是发送相关标头:
Content-type: application/pdf
当前发送的标头s3
is:
Content-type: application/octet-stream
由于您将文件上传到 s3 - 您可以在上传期间或之后使用某些 s3 工具(例如,用于 Windows 的 s3cmd)为文件设置正确的 mime 类型。
根据文档链接 http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation你提供的,putObjectFile
函数已弃用,但定义如下:
putObjectFile (string $file, string $bucket, string $uri, [constant $acl = S3::ACL_PRIVATE], [array $metaHeaders = array()], [string $contentType = null])
正如你所看到的 - 最后一个参数是contentType
- 所以你可以将其设置为application/pdf
上传文件时。
这将在下载时设置正确的标头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)