Question

I have a script that creates a vCard for members of staff when the 'Add Contact' button is clicked. I have this vCard in a variable, but I'm not really sure what to do with it next.

I take it that my frist step should be to save this file on the server?

I'd like to just have a box pop up and allow people to download and save the vCard, so if the step about is not necessary I'd like to just skip it.

Any pointers here would be appriciated.

Thanks.

Was it helpful?

Solution

If you want a File Save dialog to pop up when someone requests the export URL, you have to use

header("Content-type:text/vcard; charset=utf-8");
header("Content-Disposition: attachment; filename=vcardexport.vcf");
echo $vCardData;

So No, you dont have to save it as a file on the server first. You can serve it from the variable. Note that you can use this approach for any other data as long as you specify the right MIME Type for Content-Type.

Also see https://en.wikipedia.org/wiki/VCard and https://www.ietf.org/rfc/rfc2183.txt

OTHER TIPS

If you have your vcard in a variable, then you can easily force it as a download onto the client with this code:

<?php

header('Content-type: text/vcard');
header('Content-disposition: attachment;filename=vcard.vcf');
echo $vcard_variable;

?>

Try look at the content-disposition header :)

It can force a file download at the client :)

You can just output the vCard from PHP, setting the proper content-type with a response header. This should force a download on the user's browser. I've googled it and found this example.

If you have the file on the server you can just have a link on the button that points to the file

<a href="location of the vcard file"><img src="button.jpg"></a>

or are you looking for a different delivery method?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top