【问题标题】:How to download html file from another website如何从其他网站下载html文件
【发布时间】:2018-07-16 23:05:31
【问题描述】:

我想从另一个网站下载一个 html 文件,我尝试了以下代码但它不起作用,它只是重定向到该网站:

<a href='http://example.com' download>Download</a>

那么如何从另一个网站下载一个html文件呢?

【问题讨论】:

  • 您是从哪里想到添加download 属性的?您的问题不清楚,您想使用 PHP 下载文件吗?还是使用 JS?
  • @MehdiBounya 下载是添加到 html5 中 &lt;a&gt; 标记的属性。当 href 实际指向一个文件而不是一个目录时,应该使用它。
  • 嗯,这对我来说是新事物。谢谢!
  • 这个问题需要更多解释。在标签方面,这与javascript、php、jquery或html无关。
  • MDN 的第一条注释“此属性仅适用于同源 URL。”如果您尝试对与此页面不在同一站点上的 URL 执行此操作,它将不起作用。

标签: html


【解决方案1】:

如 cmets 中所述,下载属性仅适用于同源 URL。

我通过在后端公开一个端点来解决这个问题,该端点重定向到带有我要下载的文件的 url,并指向客户端上的那个。

前端

<a href='/download-file' download>Download</a>

后台

router.get('/download-file', (req, res, next) => {
  res.redirect('http://example.com/url-to-the-file');
});

如果您无法控制这些文件,请注意要重定向到的内容。

在我的情况下,文件托管在 CDN 中,这使得 URL 的来源不同,但我仍然可以控制它。

【讨论】:

    【解决方案2】:

    &lt;a&gt; 用于将用户引导至指定链接。在 html5 中,您可以添加属性 download 并链接到特定文件以表示您打算将文件作为下载提供。

    在这种情况下,href 值应该指向一个特定的文件,而不仅仅是一个目录。带有链接的 html 文件还必须在顶部 &lt;!DOCTYPE html&gt; 处使用 html5 的 doctype 进行标记。

    您必须从与您的网站相同的域中提供 html/下载,否则处理另一个主题的 CORS。

    例子

    <a href='http://example.com/myFileToDownload.html' download>Download Source</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多