我正在一个工作中的PHP Vcard工具在本地工作正常,但不在实时服务器上。 本地我基本上是获取联系人详细信息并将其写入服务器上的.vcf文件,即lewis_cains.vcf,它可能如下所示:
BEGIN:VCARD
VERSION:2.1
N:name;Full
FN:Full name
ORG:Company name
TITLE:Job title
END:VCARD
等。
然后在网站上我有一个.vcf文件的直接链接,这可以在本地工作时完美地链接/下载到我的地址簿中。
但是,我已将其推送到实时服务器,并且它已输出包含上述内容的纯文本文件。 经过一些研究,我稍微修改了一些东西并使用这个方法来处理它使用php标题:
public static function load_vcard($team_slug){
$vcard_file = BASE_URL.'vcards/'.$team_slug.'.vcf';
header('Content-Type: text/vcard');
header("Content-Disposition: attachment; filename=\"".$team_slug.".vcf\";");
readfile($vcard_file);
}
现在我处于尝试下载文件的位置,但是当我点击链接时,我收到了“无法导入卡片”的消息。
有没有人知道为什么这会在本地而不是生活,然后为什么它似乎没有正确读取文件?
非常感谢你的帮助, 路易斯。
答案 0 :(得分:0)
加载vCard文件的方式可能是问题的原因。 vCard文件存在于服务器上,对吗?但是,您似乎使用URL来加载文件,而不是文件系统路径。使用文件系统路径可以解决问题:
public static function load_vcard($team_slug){
$vcard_file = __DIR__.'/vcards/'.$team_slug.'.vcf';
header('Content-Type: text/vcard');
header("Content-Disposition: attachment; filename=\"".$team_slug.".vcf\";");
readfile($vcard_file);
}