Downloadscript funktioniert nicht bei Files mit Kommatas/Leerschläge

redX

Erfahrenes Mitglied
Ich habe ein Downloadscript, welches wunderprächtig funktioniert. Wenn ich jedoch ein File herunterladen welches Leerzeichen/Kommatas enthält, funktioniert dieses nicht. Es werden nur irgendwie 34 KB oder so geladen....

PHP:
			if (isset($filetype)) header("Content-Type: ".$filetype);
			header("Content-Length: ".$size);
			header("Content-Disposition: attachment; filename=\"".urlencode($name)."\"");
			header("Pragma: no-cache");
			header("Expires: 0");
			readfile($durl);
			@mysql_close();

echo "Name_: " . $name . " <---> DL Size: " . $size . " -> " . human_file_size($size) . " <---> Filetype: " . $filetype;

Ausgabe:
Name_: Hedy Burress, Tara Strong, Gwendoline Yeo_YRP.wmv <---> DL Size: 27142232 -> 25.88 MB <---> Filetype: windows/metafile

Der Name der Datei ist korrekt, sowie auch die Downloadgrösse und der Filetype.
Zuerst hatte ich es ohne urlencode() versucht, doch es geht mit und ohne nicht...

Kann mir da wer weiterhelfen?

X
 
Das hilft dir zwar nicht bei deinem Problem, aber warum nimmst du nich einfach "webkonforme" Dateinamen?

Und zu Probe (keine Ahnung ob es funktioniert) ersetz mal die Zeile:

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

mit

PHP:
header('Content-Disposition: attachment; filename="'.urlencode($name).'"');

und wenn das nicht klappt, dann lass das urlencode auch weg.
 
Zuletzt bearbeitet:
Lass mal die Angabe der Rumpfgröße weg:
PHP:
header('Content-Type: '.$filetype);
header('Content-Disposition: attachment; filename="'.addslashes($name).'"');
readfile($durl);
 
Hey Gumbo
leider auch nicht

PHP:
			if (isset($filetype)) header("Content-Type: ".$filetype);
			//header("Content-Length: ".$size);
			header("Content-Disposition: attachment; filename=\"".urlencode($name)."\"");
			//header("Pragma: no-cache");
			//header("Expires: 0");
			readfile($durl);
			@mysql_close();

Hey Hektik
Geht auch nicht.
Und alle Files umbenennen wäre einfach die Notlösung. Da das ganze noch mit einem CMS arbeitet müsste man da schon einiges umschreiben.

X
 
Hallo,

dazu müsste ich gerne wie du die Files zum Download uploadest.
Wenn es ein CMS ist läuft es sicher über ein Mediaupload.
Wenn ja sag dem Upload er soll einen Namen generieren.


Tobee
 
Klassifiziere die Daten doch mal als Klartext („text/plain“). So kannst du die Ausgabe am besten manuell überprüfen.
 
Hey Gumbo
Öhm.. was meinst du? Den content-type auf text/plain setzen? Bewirkt ledier auch nix...

Hey tobee
Die Dateien werden mit FTP hinaufgeladen da sie Teilweise sehr gross sind. Es muss dann aber im CMS noch ein Datenbankeintrag erstellt werden. Ich kann das File da natürlich auch umbenennen.... Aber eben. Nur wenns nicht anderst geht :)

X
 
http://www.ffworld.info/x_downloads&cat=kh2&id=364&mode=self.html

GET /x_downloads&cat=kh2&id=364&mode=self.html HTTP/1.1
Host: http://www.ffworld.info
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.ffworld.info/x_downloads&cat=kh2&id=364.html
Cookie: ***

HTTP/1.x 200 OK
Date: Tue, 09 May 2006 12:55:14 GMT
Server: Apache/2.0.52
X-Powered-By: PHP/5.1.2
Set-Cookie: PHPSESSID=***; path=/
Expires: 0
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 27142232
content-disposition: attachment; filename="Hedy+Burress%2C+Tara+Strong%2C+Gwendoline+Yeo_YRP.wmv"
Keep-Alive: timeout=1, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=ISO-8859-1
----------------------------------------------------------

Sieht allerdings nicht schelcht aus... *sich am Kopf kratz*

X
 
Na und was wird nun tatsächlich ausgeliefert? Ein Fehlerdokument mit Fehlermeldung:
Warning: readfile(http://www.ffworld.info/downloads/kh2/interviews/Hedy Burress, Tara Strong, Gwendoline Yeo_YRP.wmv) [function.readfile]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in /www/htdocs/v027867/lib/header.php on line 60
Obwohl nicht einmal der HTTP-Statuscode stimmt.
 
Zurück