【问题标题】:Download PDF file directly from external URL直接从外部 URL 下载 PDF 文件
【发布时间】:2023-02-17 00:14:21
【问题描述】:

我想知道是否可以直接从另一个网站的网址而不是打开一个新窗口。

<a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_blank"><button>Download FILE</button></a>

【问题讨论】:

    标签: pdf hyperlink


    【解决方案1】:

    最推荐的方法是这样的

    <!DOCTYPE html>
    <html>
    <body>
    
    <h3>https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_a_download</h3>
    
    <p>Click on the image to download PDF32000_2008.pdf<p>
    <a href="https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf" download><img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" alt="PDF32000_2008 standard" width="104" height="142">
    </a>
    
    <p><b>Note:</b> The download attribute is not supported in IE or Edge (prior version 18), or in Safari (prior version 10.1).</p>
    
    </body>
    </html>
    

    这比您的方法更可取,因为它让用户决定下载和重命名文档的时间!此外,您只需要提供封面图标或图像。然而,尽管这对作为客户端用户“offweb”的我来说没有任何问题,但如果它被跨站点污染,它可能无法像服务器上的任何其他链接一样工作。 href 地址只能用于在您自己的网站上或通过您自己的网站提供的资源。

    即使您使用 iFrame 或任何其他超级下载方法,也应该是这种情况,而不解决跨源问题。

    因此,像您当前的方法这样的东西经常被吹捧为绕过任何跨站点限制的“解决方法”,因为对新选项卡的调用是从客户端浏览器到远程源的直接链接,因此不会再次通过“中间人”,但是,您应该通过添加来提高安全性:-

    <a href="https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_blank" rel="noopener noreferrer"><button>Download FILE</button></a>
    

    <!DOCTYPE html>
    <html>
    <body>
    
    <h3>https://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_a_download</h3>
    
    
    <p>Click on the image to download PDF32000_2008.pdf<p>
    <a href="https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf" rel="noopener noreferrer"><img src="https://www.w3schools.com/images/myw3schoolsimage.jpg" alt="PDF32000_2008 standard" width="104" height="142" target="_blank">
    </a>
    
    <p><b>Note:</b> The download attribute is not supported in IE or Edge (prior version 18), or in Safari (prior version 10.1).</p>
    
    </body>
    </html>

    链接页面通过 window.opener 对象获得对链接页面的部分访问权限:- 参见 https://stackoverflow.com/a/45902400/10802527https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 2020-11-04
      • 2023-03-22
      • 2017-04-06
      • 1970-01-01
      相关资源
      最近更新 更多