【经验总结】PDF链接预览变下载了?

1,011 阅读2分钟

前言:记一次PDF链接,预览变下载的问题排查过程,顺便将相关知识点总结一下

一、发现问题:预览变下载了?

测试说,PDF预览按钮和下载按钮,点击以后都是下载?

二、排查问题

首先,确认代码。预览按钮和下载按钮的代码是正确的,只有下载按钮增加了下载方法

这就奇怪了?!

复制PDF链接到浏览器,直接是下载,而不是预览

原来问题出在文件链接本身!

image.png

查看请求头,发现content-type的值,后端同事写错啦

content-type的值,application/pdf少了一个字母'a'

找后端同事改了以后,问题得以解决

三、总结问题:影响链接功能的三个方面

(1)Content-type

服务器在HTTP响应头部中一个字段,告诉浏览器返回的数据的类型。浏览器根据这个类型来决定如何处理响应。

常见的Content-Type值:

  • text/html : HTML格式
  • text/plain :纯文本格式
  • image/png:png图片格式
  • application/json: json数据格式
  • application/x-www-form-urlencoded :表单默认的提交数据的格式,form表单数据被编码为key:value格式发送到服务器。<form encType=””>中默认的encType
  • multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
  • application/pdf:pdf格式

(2)Content-Disposition

请求头中的一个字段,告诉浏览器如何处理响应内容。

它有两个值:

  • inline:浏览器尝试直接在页面中打开内容,例如显示图片或PDF文档。
  • attachment:浏览器提示用户将内容作为附件下载,而不是尝试在浏览器中显示。

(3)浏览器设置

浏览器会有默认的处理方式,例如通常会直接打开HTML页面、图片、PDF文档。

然而,用户可以在某些浏览器设置中更改这些偏好,例如选择是否始终下载特定类型的文件。