Downloadscript liest nur Quelltext ein

Ich möchte Datein zum downloaden anbieten. Das Downloadfenster kommt auch aber wenn ich die Datei dann downloade ist nur der Qeulltext der Webseite in der Datei und nicht der eiegntliche Inhalt.

public function makeDownload($file, $dir)
	{
		$dir = str_replace("@", "/", $dir);
		$dir .= "/";
		if(file_exists($dir.$file) && strstr($dir, "downloads"))
		{
			$filesize = filesize($dir.$file);
			$type = $this->getType($file);
			header("Content-Type: $type");
			header("Content-Disposition:   attachment; filename=\"$file\"");
			header("Content-Length: $filesize");
			
			readfile("./downloads/ordner 1/test1.txt/");

		}		
	} 

[PHP]
$filesize = filesize($dir.$file);
$type = $this->getType($file);
header(„Content-Type: $type“);
header(„Content-Disposition: attachment; filename="$file"“);
header(„Content-Length: $filesize“);
readfile($dir.$file);
[/PHP]Oder ist das ein Test, dass du einen variablen Pfad in einen festen umwandelst und noch dazu in ein verzeichnis, dass die endung .txt hat ??

Pfade (Verzeichnisnamen) sollten keine Abstände, Umlaute und Dateiendungen enthalten

ja das ich da was festes eingetragen habe war nur ein test. readfile($dir.$file);

sollte sowas stehen wie readfile("./downloads/ordner 1/test1.txt/");

Mich macht das
readfile(„./downloads/ordner 1/test1.txt/“); stutzig, da möglicherweise eine Textdatei erswartet wird. Ebenso ist es mit dem Leerzeichen bei ordner 1
Test mal mit pfaden wie ./download/ordner_1/test1/ also ohne Leerzeichen (die werden von verschiedenen Systemen ab und zu mal unterschiedlich interpretiert und kodiert) und ohne das .txt

PS
Noch was, was gibt den $type bei dir als filetype aus[FONT=monospace] ( Schlüsselstelle: [/FONT]$type = $this->getType($file); )
Wenn ein Download erzwungen werden soll könntest du statt
[PHP]header(„Content-Type: $type“);[/PHP] das eintragen:
[PHP]header(„Content-type: application/octet-stream“);[/PHP]

Okay, also die Datei die gedownloadet werden soll ist „test1.txt“ das mit dem Slash war nur ne idee/test. Wenn ich den entferne gehts leider auch nicht :cry:

Die Methode [PHP]$this->getType($file)[/PHP] leifert das richtige Ergebnis.
Ich werde aber gleich mal deinen Vorschlag probieren.

Die Sache mit dem blank … Ist bei mir garnicht… hab keine Ahnung wie sich das da eingeschlichen hat :stuck_out_tongue:

Wenn ich [PHP] header(„Content-type: application/octet-stream“); [/PHP]
benutze gibt er den richtigen inhalt der Datei auf der Webseite aus. ES gibt aber leider kein Downloadfenster :confused: