5 Stimmen

Wie lädt man eine .vcf-Datei richtig herunter?

Ich würde gerne wissen, wie ich einen Vcard-Download realisieren kann. Das ist mein aktueller Code:

$path = "../../media/resources/";  
$file = "someName.vcf";  

header('Content-Type: text/x-vCard');  
header('Content-Disposition: attachment; filename= "'.$file.'"');  
header('Content-Length: '.filesize($path.$file));  
header('Connection: close');  

readfile($path.$file);

Leider gibt sie nur den Inhalt der .vcf-Datei aus. Wie kann ich diese vcard dem Benutzer als Download zur Verfügung stellen?

4voto

Brendan Bullen Punkte 11196

Sie haben header('Connection: close'); was vermutlich die Verbindung schließt, bevor der Inhalt der Datei gelesen wird. Ich habe die Zeile entfernt.

Ich bin mir nicht sicher, was die Unterscheidung von Groß- und Kleinschreibung bei content-type angeht, also habe ich es in x-vcard geändert und die content-disposition auf inline gesetzt (eine bekannte Lösung für Download-Probleme mit dem IE). Versuchen Sie dies:

$path = "../../media/resources/";  
$file = "Toni_Junas.vcf";  

header('Content-Type: text/x-vcard');  
header('Content-Disposition: inline; filename= "'.$file.'"');  
header('Content-Length: '.filesize($path.$file));  

readfile($path.$file);

Stellen Sie außerdem sicher, dass das Verzeichnis "resources" lesbar ist (chmod 755 auf das Verzeichnis) und dass die Datei existiert...

0voto

Shakti Singh Punkte 81441

Setzen. exit()

readfile($path.$file);
exit();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X