PHP VCard不导入/生成

时间:2014-01-29 17:21:07

标签: php oop vcard

我正在一个工作中的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);
}

现在我处于尝试下载文件的位置,但是当我点击链接时,我收到了“无法导入卡片”的消息。

有没有人知道为什么这会在本地而不是生活,然后为什么它似乎没有正确读取文件?

非常感谢你的帮助, 路易斯。

1 个答案:

答案 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);
}