我在网站上有一个下载 vCard (.vcf) 链接。它可以在本地运行,但不能在线运行。只需在浏览器中打开文件,无需下载。我宁愿不必压缩它。
阅读并发现我需要把这个:
AddType text/x-vcard .vcf
在 .htaccess 文件中。但它仍然无法正常工作。我错过了什么吗?
该网站由 godaddy 托管。我在某处读到的一个旧线程有一个人让它工作,但除了 .htaccess 位之外没有更多信息。
作为第一步,询问 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 文件提供服务。
事实证明我所做的是正确的,只是花了一段时间才开始工作。然后当它仍然无法在 Firefox 中运行时,必须清除离线内存并开始工作。
根据 MIME 类型(在您的帖子文本/x-vcard 中),浏览器决定天气是在浏览器中打开文件还是开始下载。
一种简单的方法是告诉服务器提供以 .vcf 结尾且具有其他 MIME 类型的文件。在这里,您应该选择一种可以确保浏览器始终下载它的类型:
尝试:AddType application/octet-stream vcf