0

我的网站上有以下文件的网址:

http://www.foo.com/download/1

这将使用下载帮助程序使用 force_download 函数下载文件。

我被要求为这些文件提供类似按钮,这些文件显示在站点页面之一的 html 表格中。

因此,使用facebook 之类的按钮工具,我创建了以下按钮:

<div class="fb-like" data-href="http://www.foo.com/download/1" data-send="false" data-width="450" data-show-faces="false"></div>

但是,因为这是到文件的直接链接,所以没有收到正确的打开图形元数据,例如描述是:“%PDF-1.3 %�ãÏÓ 1041 0 obj..”

所以我的问题是如何为我的下载链接提供开放图元数据?例如:

  <meta property="og:type"            content="website" /> 
  <meta property="og:url"             content="http://foo.com/download/1" /> 
  <meta property="og:title"           content="Download 1" /> 
  <meta property="og:image"           content="bar.png" /> 
  <meta property="og:description"     content="File description" /> 
4

1 回答 1

1

对于您下载文件本身的网址,您不能,因为它(可能)不是 html 页面,即使是,您也不希望使用自己的元数据更改文件的内容。

您可以尝试对下载文件的客户端和 facebook 爬虫所使用的 URL 使用某种重定向,当然您也需要一个 url 来进行真正的下载。

在您为喜欢和用户发送的视图中:

<!-- meta tags -->
<meta property="og:type" content="website" />
<meta property="og:url" content="http://foo.com/download/1" /> 
<!-- .... -->
<body>
    <script>
    // imaginary real download url url
    window.location = '<?php site_url('download/real_download/'.$download_id);?>';
    </script>
</body>

Facebook 似乎也不理解刷新元标记,因此您可以编写并避免使用 javascript:

<meta http-equiv="refresh" content="1;URL='<?php site_url('...')?>'">

免责声明:我没有从 facebook 找到任何描述他们的爬虫理解的文档,因此不能保证其中任何一个都将继续工作。我自己在类似的情况下使用 javascript 解决方案已经有一年了。

于 2013-04-14T10:18:40.767 回答