当前位置: 首页 > 知识库问答 >
问题:

强制在浏览器中查看S3 PDF而不是下载

饶谦
2023-03-14

因此,您可以使用内容配置:附件强制下载

内容处置:内联是默认的,应该在浏览器中显示,它实际上可以处理大多数文件,如PNG,JPG等。

但是出于某种原因,当从S3生成预先指定的URL时,即使我不使用content disposition:attachment头,PDF文件也会强制下载。

我希望能够在浏览器允许的情况下在浏览器中打开PDF

我使用预先指定的URL从S3客户端生成调用http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html


共有3个答案

向实
2023-03-14

您还需要正确设置Content-Type。浏览器将检查内容类型值,如果它不知道如何显示,它将始终下载文件。

单于承
2023-03-14

您必须按如下方式设置putObject参数以查看pdf而不是下载

 params = {
        Bucket: process.env.S3_BUCKET,
        Key: <fileName>,
        Body: <fileContent>,
        ContentDisposition:"inline",
        ContentType:"application/pdf"
    };
盖锐进
2023-03-14

检查文件的元数据并从该文件中删除内容处置条目。并根据文件类型设置内容类型。

就像文本文件Content-Type='text/平原'

图像png内容类型=“图像/png”

pdf内容类型=应用程序/pdf

pdfxml Content Type=application/vnd.adobe.pdfxml

如果您的文件的Content-Type是二进制/八位字节流,那么它将下载而不是显示。

谢谢

 类似资料:
  • 问题内容: 一切正常,但是只有当文件很小(大约1MB)时,当我尝试使用更大的文件(例如20MB)时,我的浏览器将其显示,而不是强制下载,到目前为止,我尝试了许多标头,现在我的代码看起来像: 问题答案: 在将文件内容写入输出流之后,你将设置响应头。在响应生命周期中设置标头很晚。正确的操作顺序应该是首先设置头,然后将文件的内容写入servlet的输出流。 因此,你的方法应编写如下(由于仅是表示形式,因

  • 我在我的节点后端生成一个pdf,如下所示: 现在,当我调用后端和控制台时。记录响应,我得到以下输出: _正文:“%PDF-1.3↵%����↵50 obj↵ 标头:标头_headersMap:地图大小:(...)原型:地图[1] 0:{"内容类型"= 我看到我的PDF在回复的正文中。但我现在如何在浏览器中查看或下载它?如果有必要的话,我会在前端使用Angular2。 我找到的信息是以前的angul

  • 我是否可以让excel文件在浏览器中打开以供查看,而不是下载,并有一个下载按钮,类似于PDFs? 我使用的是Python Flask,对于PDFs,我使用:

  • 问题内容: 单击图像后,是否可以将其下载(没有右键单击 将图像另存为 )? 我正在使用一个小的Javascript函数来调用下载页面: 在download.php页面中,我有类似以下内容: 但这是行不通的。我究竟做错了什么? 提前致谢! 问题答案: 使用 application / octet- stream 代替 image / jpg : 如果在应用程序/八位字节流内容类型的响应中使用[Con

  • 问题内容: 有什么办法可以在页面上放置一些代码,以便当有人访问网站时,它会清除浏览器缓存,以便他们可以查看更改? 使用的语言:ASP.NET,VB.NET,当然还有HTML,CSS和jQuery。 问题答案: 如果这是关于和变化,一种方法是到“缓存无效”是通过附加像“ ”为每个版本的文件名。例如: 或者,在文件名之后执行此操作:

  • 问题内容: 我在客户端生成图像,并使用HTML显示如下: 我想提供下载生成的图像的可能性。 我怎么能知道浏览器正在打开文件保存对话框(或者只是将chrome或firefox这样的图像下载到下载文件夹中即可),从而允许用户保存图像 而无需右键单击并另存为 图像? 我希望没有服务器交互的解决方案。因此,我知道如果我先上传图像然后开始下载,那将是可能的。 非常感谢! 问题答案: 只需替换为。客户端不会将