将 PDF 上传到 Amazon S3 并在浏览器中显示
Uploading PDF to Amazon S3 and display in-browser
我正在使用 Panic Transmis 并通过 PHP script/API 手动将 PDF 上传到 AmazonS3。
出于某种原因,有些会显示在您的浏览器中,有些会强制下载。
我已经检查了权限并且似乎看不到任何问题,任何人都可以帮助解释如何使 PDF 始终显示在浏览器中(除非用户另有说明)。
我认为这不是浏览器问题。
您需要更改 Content-Type 和 Content-Disposition。
Content-Type: application/pdf;
Content-Disposition: inline;
使用 AWS S3 控制台,找到文件并使用上下文菜单(右键单击)select 属性,然后它位于元数据下。
或以编程方式更改:
http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/create_object
配合 well 的回答,举个例子:
public function save($bucket, $name, $content, $options = [])
{
$this->s3->putObject([
'Bucket' => $bucket,
'Key' => $name,
'Body' => $content,
] + $options);
}
$this->bucket->save('my-bucket', 'SofiaLoren.pdf', $content, [
'ContentType' => 'application/pdf',
'ContentDisposition' => 'inline',
]);
我正在使用 Panic Transmis 并通过 PHP script/API 手动将 PDF 上传到 AmazonS3。 出于某种原因,有些会显示在您的浏览器中,有些会强制下载。 我已经检查了权限并且似乎看不到任何问题,任何人都可以帮助解释如何使 PDF 始终显示在浏览器中(除非用户另有说明)。
我认为这不是浏览器问题。
您需要更改 Content-Type 和 Content-Disposition。
Content-Type: application/pdf;
Content-Disposition: inline;
使用 AWS S3 控制台,找到文件并使用上下文菜单(右键单击)select 属性,然后它位于元数据下。
或以编程方式更改: http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/create_object
配合 well 的回答,举个例子:
public function save($bucket, $name, $content, $options = [])
{
$this->s3->putObject([
'Bucket' => $bucket,
'Key' => $name,
'Body' => $content,
] + $options);
}
$this->bucket->save('my-bucket', 'SofiaLoren.pdf', $content, [
'ContentType' => 'application/pdf',
'ContentDisposition' => 'inline',
]);