• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Content Disposition

schueler

Neues Mitglied
Hey Leute!
ich hab leider ein kleines Problem.
ich möchte gerne eine Datei zum Download anbieten ..
dazu hab ich den Link

Code:
<a href="dl.php?id=',$files->id,'&amp;check=',$ts,'">

und die dl.php

Code:
$id = htmlspecialchars($_GET['id']);
	$check = htmlspecialchars($_GET['check']);
	
	$abfrage = "SELECT * FROM files WHERE id = '$id'";
	$ergebnis = mysql_query($abfrage);
	while($files = mysql_fetch_object($ergebnis)){
		$ts = $files->timestamp;
		if($ts == $check){
			$originfilename = $files->filename;
			$filename = str_replace($ts, "", $originfilename);
			$typ = $files->dateityp;
			//echo 'Download: ',$filename,' / ',$typ,' Datei. (',$originfilename,')<br>';
		}
		else{
			//echo 'Unberechtigter Zugriff!<br>';
		}
	}
	
	header("Content-type: ",$typ);
 	header("Content-Disposition: attachment; filename=",$filename);
 	readfile("uploads/",$originfilename);

wenn ich nun auf den Link klicke bietet er mir nur die dl.htm zum download an .. was mach ich dabei falsch?
ich hab leider noch keine Erfahrung mit Content-Disposition und im Internet leider auch nichts dazu gefunden.

Danke (:
 
Du benutzt Kommas um Strings/Befehle zu verbinden? Geht das überhaupt? ich kenne das nur mit Punkten.

Mach vorher ambesten ein file_exists check, ob es die angeforderte Datei überhaupt gibt.

Btw: Bei mir hilft es, wenn ich nicht relativ, sondern den vollen Rootpfad zur Datei angebe.

Ich mache es so:
PHP:
if(file_exists($toroot.$file)) {
header("Content-Type: application/force-download");
header("Content-Length: ".filesize($toroot.$file));
header("Content-Disposition: attachment; filename=".$neuername);
readfile($toroot.$file);
}

Vielleicht hilft es dir ja.

Mfg
 
omg .. sorry .. des mit den Beistrichen war natürlich der Fehler an dems gelegen ist .. anscheinend hab ich des schlichtweg übersehn *gg*

danke .. des mit dem file_exists sollt ich wirklich noch einbaun (:

mfG
 
Zurück
Oben