Datei-Download klappt nicht

nordi

Erfahrenes Mitglied
Hallo, ich habe eine Problem mit meinem Uploadskript. Man gibt in eine Maske Thema, Dozent, Note, Name und die Datei (PDF oder DOC) ein und lädt sie auf dem Server hoch. Die Daten werden in einer Mysql-Datenbank abgespeichert.. aber der Download funktioniert irgendwie nicht. Die Einträge werden auf der Seite zum Download angezeigt, aber wenn man auf den Link klickt, werden nur kryptische Zeichen angezeigt.. irgendwie probiert er die PDF-Datei auszulesen.. Könnt ihr mir da irgendwie weiterhelfen?

Lieben Dank

PHP:
<?php 
		include("content/config/config.php");

// hier sind die mySQL Daten einzufüllen 
@mysql_connect("$dbhost", "$dbuser", "$dbpass"); 
@mysql_select_db("$dbtable"); 

if(isset($_GET['id']))
{
include("content/config/config.php");

$id = $_GET['id'];
$query = "SELECT filename, filetype, filesize, filepath FROM $essay WHERE id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($fileName, $fileType, $fileSize, $filePath) = mysql_fetch_array($result);

header("Content-Disposition: attachment; filename=$fileName");
header("Content-length: $fileSize");
header("Content-type: $fileType");

readfile($filePath);

exit;

} else { 
// Es wurde keine Datei ausgewählt -> alle Möglichkeiten anzeigen 

$sql = "SELECT id, filename FROM $essay"; 
$result = @mysql_query($sql); 

while ($row = mysql_fetch_object($result)) { 
echo "<a href=\"".$PHP_SELF."?id=".$row->id."\">".$row->filename."</a><br>"; 
} 

} 

?>
 
Hi, also wenn ich das so richtig verstehe, dann hab ich da ein Problem mit den "Headern", richtig? Ich bekomm jetzt auf jeden Fall die Errormeldung

HTML:
Warning: Cannot modify header information - headers already sent by..
bei

PHP:
<?php 
		include("content/config/config.php");

// hier sind die mySQL Daten einzufüllen 
@mysql_connect("$dbhost", "$dbuser", "$dbpass"); 
@mysql_select_db("$dbtable"); 

if(isset($_GET['id']))
{
include("content/config/config.php");

$id = $_GET['id'];
$query = "SELECT filename, filetype, filesize, filepath FROM $essay WHERE id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($fileName, $fileType, $fileSize, $filePath) = mysql_fetch_array($result);

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$id\"");

readfile($filePath);

exit;

} else { 
// Es wurde keine Datei ausgewählt -> alle Möglichkeiten anzeigen 

$sql = "SELECT id, filename FROM $essay"; 
$result = @mysql_query($sql); 

while ($row = mysql_fetch_object($result)) { 
echo "<a href=\"".$PHP_SELF."?id=".$row->id."\">".$row->filename."</a><br>"; 
} 

} 

?>
 
Hast du in deiner Datei vor dem <?php noch ein Leerzeichen oder sonst irgend etwas das schon ein Zeichen ausgibt? Ev in der Datei content/config/config.php?
 
Zurück