Problem mit Downloadscript

timäää

Erfahrenes Mitglied
Hallo zusammen!

Hab ein Kleines Problem mit einem von mir geschriebenen Downloadscript.

PHP:
header("Content-Type: ".mime_content_type($file));
header('Content-Encoding:none');
header("Content-Length: ".filesize($file));
header('Content-Disposition: attachment; filename="'.$filename.'"');
	
readfile($file);

Seit dem Umzug auf einen neun Server werden alle Dateien mit UTF8-Codierung abgespeichert, was dazu führt, dass sich über das Script runtergeladene Worddateien nicht mehr öffnen lassen. Irgendwer ne Idee wie sich das beheben lässt?
 
Solche Probleme haben mich auch schon beschäftigt. Ich würde folgendes versuchen:

1. Versuch
header('Content-Encoding:utf-8');

2. Versuch mit utf8

3. Versuch
statt readfile($file);
das hier:
echo utf8_decode(file_get_contents($file));

Falls das auch nicht hilft notfalls nochmal utf8_encode()

Wenn das alles fehlschlägt, bin ich auch ratlos.
 
Wenn das Dokument selbst nicht Unicode ist, solltest du statt none oder utf-8 (wie vorgeschlagen) wohl eher ISO nehmen. Versuch mal ISO-8859-1. CP1252 wäre auch noch ne Möglichkeit, MS geht da gern eigene Wege.
 
Hab alles mal ausprobiert. Hat leider nicht funktioniert. Aber ich glaube ich bin der Sache grade ein bisschen näher gekommen: Die Datei wird als UTF-8 mit Byte Order Mark gespeichert. Wenn ich ne runtergeladene Datei in UTF-8 ohne BOM konvertiere funktionierts... gibts irgendwie ne Möglichkeit die Ausgabe des BOM zu verhindern?
 
Okay... ich habs jetzt gelöst:

PHP:
header("Content-Type: ".mime_content_type($file)); 
header('Content-Encoding:none'); 
header("Content-Length: ".filesize($file)); 
header('Content-Disposition: attachment; filename="'.$filename.'"'); 
    
ob_clean();
flush();
 
readfile($file);

Habs von der PHP-Funktionsreferenz für readfile() :rtfm:

Problem war wohl, dass die Header nicht vor der Datei gesendet wurden und das die Browser durcheinander gebracht hat....
 
Zurück