2012-04-23 2 views
5

Ich suche, um den Download einer Datei von einer externen Quelle mit PHP-Header zu erzwingen. Der Dateityp könnte jedoch ANYTHING sein. Wie kann ich den Download aller Dateitypen erzwingen?Force Datei Download von unbekannten Dateityp mit PHP

Ich hoffe, Sie können meine Frage verstehen und was ich versuche zu beschreiben.

+3

alle Downloads Erzwingen mir scheint wie eine schlechte Idee ... – Jon

+0

Blick auf die PHP-Dokumentation 'readfile()', speziell die Header auf Oktettstream setzen. –

+0

stimme @Jon zu, es ist eine schlechte UX-Entscheidung. Sind Sie 100% sicher, dass Ihre Benutzer die Datei herunterladen möchten? Sind Sie 100% sicher, dass sie es in ihrem Standard-Download-Verzeichnis mit dem Standardnamen speichern möchten? IFF können Sie ja zu diesen sagen, dann fahren Sie fort. – Jeff

Antwort

6

Sie meinen HTTP-Header, und Sie suchen nach RFC 2616, http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html "Content Disposition".

die folgenden Header senden Download aller Dateien und Typen zu erzwingen:

header('Content-Disposition: attachment; filename="name.ext"'); 
header('Content-Type: application/octet-stream'); // or application/force-download 

echo $the_file_content; 
exit; 
+0

Wenn Sie den MIME-Typ "Anwendung/Oktett-Stream" meinen. – freeone3000

+3

Oh, es ist spezifisch. Es erklärt, dass Ihre Datei aus Bytes besteht. Wenn Ihre Datei nicht aus Bytes besteht, müssen Sie etwas anderes finden. – freeone3000

+0

Nur die Mehrheit? – Johnnyoh