.htaccess

Eigentlich nicht.

Ist doch bestimmt nur noch ne Einstellungssache oder?

Ich verzweifele langsam! :confused:

Und nochmal was, das hat jemand mal geschrieben:

Es ist mir rätselhaft, wie Opera aus dem Content-Type "text/plain" "application/x-rar-compressed" macht. Ich habe die Kommunikation zwischen dem Server und Firefox mit Wireshark aufgezeichnet: der Server deklariert die RAR-Datei klipp und klar als text/plain (also falsch).

Nun die große Überraschung: der Linux-Firefox bietet trotzdem die Möglichkeit, dieser als Text deklarierten RAR-Datei eine feste Aktion zuzuordnen, zeigt sie danach aber in der Liste der "Download Actions" nicht an (die Änderung wird in mimeTypes.rdf dennoch für "application/x-rar" eingetragen). Ich kann im Firefox-Verhalten keine Logik mehr entdecken.

Vielleicht liegts daran?
 
Zuletzt bearbeitet:
Hab noch ne Lösung gefunden, nur leider Zeigt er mir da gar nichts mehr an;

PHP:
$filename = "Bannerverwaltungsscript.rar";
$file = "./Download/".$filename;

if(!file_exists($file)) { exit; }
$size = filesize($file);
$endung = strrchr(".",$filename);

//Mimetypen
$type = array("zip","gz","xml","txt","rar","all");
$mime['zip'] = "application/zip";
$mime['gz'] = "application/gz";
$mime['xml'] = "application/xml";
$mime['txt'] = "text/plain";
$mime['rar'] = "application/rar";
$mime['all'] = "application/octet-stream";

if(in_array($endung,$type)) $mimetype = $mime[$endung];
else $mimetyp = $mime['all'];
//Mimetypen


header("Content-Type: $mimetype");
header("Content-Length: ".$size);
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile("$file");

Ist da vielleicht ein Fehler noch drin? :confused:
 
Liefere einfach alles mit dem generischen Inhaltstyp „application/octet-stream“ aus.

Zudem solltest du die Eingabewerte noch validieren.
 
Naja es funktioniert einfach nicht!

So siehts aus, ich mache alles so wie es sein soll:
PHP:
$download_path = "Scripte/Bannerveraltungsscript.rar";

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$download_path");
readfile("$download_path");

ACHSO: Egal was ich downloaden will, ich bekomme auch bei Bildern nur kryptische Zeichen! Obwohl ich den Header auch umändere in Bild!

Gibt es eine andere Möglichkeit, einfach die Datei herunterzuladen :confused:
 
Zuletzt bearbeitet:
PHP:
<?php

	$download_path = "Scripte/Bannerveraltungsscript.rar";

	if( headers_sent() ) {
		die('Header-Fehler!');
	}
	if( !is_file($download_path) || !is_readable($download_path) ) {
		header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
		die('Datei nicht gefunden!');
	}
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename='.basename($download_path));
	readfile($download_path);
	exit;
 
HEADER FEHLER kommt dabei raus!

Kann das sein, dass sich das mit meiner index.php beist?

HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
Hatte Gumbo nicht bereits gefragt, ob du irgendetwas VOR den Headern sendest?
Und du hast nein geantwortet?

Vor Benutzung von [phpf]header[/phpf] darf NICHTS an den Browser gesendet werden. Dazu zählt auch HTML.

Die Alternative wären die Funktionen zur Ausgabesteuerung.
 
Hmm und wie baue ich das ein?

Reicht dass, wenn ich den Puffer einfach lösche und fertig?

PHP:
$folder = "Downloads";

ob_clean();
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$folder."/".$file."");
readfile("".$folder."/".$file."");

oder reicht es nicht wenn ich einfach das hier lösche!? Brauche ich sowieso nicht!
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
Zuletzt bearbeitet:
Wenn du vor dem PHP-Block einfach nichts ausgibst, brauchst du auch die Ausgabepufferung nicht. (Die wäre sowieso auch nur dann wirksam, wenn sie sämtliche Ausgaben puffern würde.)
 
Also ich habe diese jetzt mal weggenommen und es ist immernoch dasselbe Problem!

Und ich habe keine anderen HEADER, denn ich habe die index.php und darin include ich nur diese Datei und mehr nicht!

Kann man das hier:
PHP:
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$folder."/".$file."");
readfile("".$folder."/".$file."");

irgendwie in so eins rein packen:
HTML:
<meta content="text/html; charset=iso-8859-1">

Es muss doch irgendwie möglich sein, per PHP eine Datei zu downloaden!?
 

Neue Beiträge

Zurück