浏览器中文件下载

作者: 追风骚年 | 来源:发表于2020-04-13 18:17 被阅读0次

    “浏览器”堪称是计算机历史中一项伟大的发明!互联网早期的应用都是专有应用,都是针对某个领域特殊制作的特殊应用,自从有了浏览器,人们可以看到更轻便和更丰富的内容,这才算走入了寻常百姓家。

    今天发现浏览器有个行为令我十分不解,有些文件的链接放在浏览器里面是直接下载的,而有些则被浏览器直接打开而没有下载。

    • 直接下载的链接
    http://qcloudoss.xunjiepdf.com/xunjiepdf/temp/20200413/1568610660.pdf
    
    • 直接打开的链接
    http://file.zhile88.com/file/LkHL6RvF4g5gD8I0_jianlitongguanbibei.pdf
    

    大家都是 http 请求凭什么你比我优秀?
    随后我分别 curl 了一下链接,分析了他们的区别

    • 直接下载的链接
    $ curl -I http://qcloudoss.xunjiepdf.com/xunjiepdf/temp/20200413/1568610660.pdf
    
    HTTP/1.1 200 OK
    Server: TencentCOS
    x-cos-storage-class: STANDARD
    x-cos-hash-crc64ecma: 4085129986793626390
    Content-Type: application/pdf
    Content-Disposition: attachment; filename*="UTF-8''1568610660.pdf"
    Content-Language: zh-CN
    ETag: 617eabf18fced6cd1202b86f3e36656c
    x-cos-object-type: normal
    Accept-Ranges: bytes
    Last-Modified: Mon, 13 Apr 2020 15:52:14 GMT
    x-cos-request-type: head
    Content-Length: 69626
    
    • 直接打开的链接
    $ curl -I http://file.zhile88.com/file/LkHL6RvF4g5gD8I0_jianlitongguanbibei.pdf 
    
    HTTP/1.1 200 OK
    Server: Tengine
    Content-Type: application/pdf
    Content-Length: 1440571
    Connection: keep-alive
    Date: Mon, 13 Apr 2020 06:57:25 GMT
    Accept-Ranges: bytes
    Access-Control-Allow-Origin: *
    Access-Control-Expose-Headers: X-Log, X-Reqid
    Access-Control-Max-Age: 2592000
    Cache-Control: public, max-age=36000000
    Content-Disposition: inline; filename="LkHL6RvF4g5gD8I0_jianlitongguanbibei.pdf"; filename*=utf-8''LkHL6RvF4g5gD8I0_jianlitongguanbibei.pdf
    Content-Md5: HhhEZRBLWCJLirG+yhSOeg==
    Content-Transfer-Encoding: binary
    Etag: "Fpv0_h7Y9qe4Plhlp-UcAwMtqumy"
    Last-Modified: Mon, 13 Apr 2020 06:41:53 GMT
    ... 省略无关的header
    

    头信息中 Content-Disposition 一下就吸引了我,一个是 inline,另一个是 attachment,根据 mozilla 官方文档我得到的信息如下:

    在HTTP场景中,第一个参数或者是inline(默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示),或者是attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将filename的值预填为下载后的文件名,假如它存在的话)。

    看到这里一下就解决了我的问题,浏览器自创建之初到现在,陆陆续续也添加着许许多多的约定参数。七牛对于需要下载的文件添加一个参数配置即可,七牛真🐂。

    参考文档

    相关文章

      网友评论

        本文标题:浏览器中文件下载

        本文链接:https://www.haomeiwen.com/subject/yfvnmhtx.html