PHP Download Header - Anfangsumlaut

wallcity

New Member
Hallo liebes SSF,

habe ein Problem mit den Downloadscript und meinen Umlauten, also die Datei, welche heruntergeladen werden soll, heisst jetzt z.B. mal:

Code:
Übersee Schwelle - Hör auf! du bub

Habe diesen Titel mir einfach mal ausgedacht, um mal zu zeigen, was ich meine.

Also der Browser soll die Datei mit dem folgendem Code herunterladen, und dann naja korrekt auch mit den Umlauten im Download korrekt drinhaben, tut es auch aber der erste Umlaut welcher Ü ist, wird nicht im Downloadnamen angezeigt, warum?:

p.s. Umlaute bzw charset ist auf: ISO-8859-1, also die anderen Umlaute im Dateinamen gehen ja, nur der erste wird nicht korrekt angezeigt, im FTP Ordner steht der Dateiname auch korrekt drin.

PHP:
$filename = "./pages/uploads/".$port."/".$downloadiddecode."";
if(ini_get("zlib.output_compression")) ini_set("zlib.output_compression", "Off");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: audio/mpeg; charset=".$messages["g0"].""); 
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();

MFG djcrackhome
 

Attachments

  • screen.png
    screen.png
    57.8 KB · Views: 137
Probiers einmal mit urlencode() bzw. rawurlencode(), gegebenenfalls die Zeichenkodierung beachten. Generell gilt allerdings: Sonderzeichen (also auch Umlaute) sowie Leerzeichen sollten in Ordner- oder Dateinamen immer vermieden werden.


MfG Christian
 
Also sowas wie:

PHP:
header("Content-Disposition: attachment; filename=\"".basename(rawurlencode($filename))."\";" );

Oder wie meinste das? Wäre schön wenn du mir ein Beispiel zeigen könntest, wie du es meinst.

MFG wallcity
 
Hallo also vielen dank zunächst mal, habe es probiert, naja also eigentlich so gesagt ist es schlimmer als vorher vom Dateinamen her. Gibt es noch eine andere Möglichkeit?
 

Attachments

  • screen.png
    screen.png
    39.2 KB · Views: 129
Last edited by a moderator:
Ich habe jetzt mal nachgeschaut, also

PHP:
$downloadiddecode = "Ölpest_und_überfall_news.mp3";

PHP:
$filename = "./pages/uploads/".$port."/".$downloadiddecode."";
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );

Dann kommt im Download an: lpest_und_überfall_news.mp3
Der Basename Befehl löscht das Ö, ich gehe davon aus da er das als Fehler aufnimmt in Erwartung für ein Verzeichnis oder ähnliches. Zumindest mal hängt es nicht an der charset oder sowas da ja das zweite ü in "überfall_news" richtig angegeben wird.

Wäre schön, wenn das mal jemand bei sich testen kann und mal bescheid gibt, falls man eine Lösung gefunden hat.


MFG wallcity
 
Wenn basename Probleme macht, warum nicht umgehen? ;)
PHP:
$filename = "Ölpest_und_überfall_news.mp3";
$letzter_punkt = strrpos($filename,".");
$name = substr($filename,0,$letzter_punkt);
$ext = substr($filename,$letzter_punkt+1);

Edit: oder warum genau willst du jetzt basename einsetzen? :confused:
 
Back
Top