3

我在网站上有一个下载 vCard (.vcf) 链接。它可以在本地运行,但不能在线运行。只需在浏览器中打开文件,无需下载。我宁愿不必压缩它。

阅读并发现我需要把这个:

AddType text/x-vcard .vcf

在 .htaccess 文件中。但它仍然无法正常工作。我错过了什么吗?

该网站由 godaddy 托管。我在某处读到的一个旧线程有一个人让它工作,但除了 .htaccess 位之外没有更多信息。

4

3 回答 3

5

作为第一步,询问 Godaddy 他们是否支持AddType指令,如果支持,如何。该解决方案肯定会更可取。

或者,您可以使用发送正确标头的原始 PHP 脚本来解决它。

contact.php(未经测试):

<?php
  # Send correct headers      
  header("Content-type: text/x-vcard"); 
                    // Alternatively: application/octet-stream
                    // Depending on the desired browser behaviour
                    // Be sure to test thoroughly cross-browser

  header("Content-Disposition: attachment; filename=\"contact.vcf\";");
  # Output file contents 
  echo file_get_contents("contact.vcf");
 ?>

这将为具有正确标题的 VCF 文件提供服务。

于 2011-02-25T11:45:33.057 回答
3

事实证明我所做的是正确的,只是花了一段时间才开始工作。然后当它仍然无法在 Firefox 中运行时,必须清除离线内存并开始工作。

于 2011-02-25T12:13:24.600 回答
2

根据 MIME 类型(在您的帖子文本/x-vcard 中),浏览器决定天气是在浏览器中打开文件还是开始下载。

一种简单的方法是告诉服务器提供以 .vcf 结尾且具有其他 MIME 类型的文件。在这里,您应该选择一种可以确保浏览器始终下载它的类型:

尝试:AddType application/octet-stream vcf

于 2011-02-25T11:45:36.527 回答