Stefan Welscher: Probleme mit dem Download von Dateien

Beitrag lesen

Moin moin,
ich hab zwei Projekte (eines nur als Test) bei dem ich Dateien zum Download anbieten will. Irgendetwas scheine ich aber trotz relativ simplen Code komplett falsch zu machen.

Bestehendes Projekt:
Die Dateien werden zum Download angeboten und lassen sich auf der Festplatte speichern. Wähle ich bei dem Downloaddialog des IE6 nicht "Speichern" sondern "Öffnen" öffnet sich auch der Editor, kann aber die Datei zum öffnen nicht finden. Bei anderen Websites funktioniert der Download Problemlos.

Testprojekt:
Auch hier wird die Datei zum Download angeboten und lässt sich auf der Festplatte speichern. Wähle ich bei dem Downloaddialog des IE6 nicht "Speichern" sondern "Öffnen" erscheint die Abfrage zum Download erneut. Erst nach der zweiten Bestätigung öffnet sich die Datei im Editor.
Bei anderen Websites funktioniert der Download Problemlos.

Woran könnte das liegen?

Bestehendes Projekt:

  
<?  
...  
if (preg_match("/test\/get_download.php/",$url) || (preg_match("/\.(xls|doc|ppt|mdb|exe|com|bat)$/i",$url) && !preg_match("/\.(php[345]?|html?)\?/i",$url)))  
{  
 $file=preg_replace("/^(.*file=)([^&]*)(.*?)$/","$2",$url);  
 $file_tail=preg_replace("%^(.*?/)([^/]*)$%","$2",$file);  
 header("Content-Type: application/octet-stream");  
 header("Content-Disposition: attachment; filename=\"$file_tail\"");  
}  
  
$output=popen("/srv/www/htdocs/test/testweb.pl get \"$url\" \"".$user_hash['username']."\" \"".$user_hash['password_ce']."\" \"".$user_hash['password_pe']."\" 2>&1", 'r');  
while(!feof($output))  
{  
 echo $line=fgets($output);  
}  
pclose($output);  
?>  

Testprojekt:

Lokale Site:

  
<html>  
<head>  
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
 <title>TEST</title>  
</head>  
  
  
<body>  
<br><br>  
  
<form enctype="multipart/form-data" action="http://test.dyndns.org/test/api.php" target=_top method=post>  
  <input maxlength="2048" name="get_file" size="32" value=""><br>  
  <input type="Submit"  name="Submit" value="Submit">  
 </form>  
  
</center>  
</body>  
</html>  

Script auf Server:

  
<?  
if ($get_file)  
{  
      header("Content-Type: application/octet-stream");  
      header("Content-Disposition: attachment; filename=\"$get_file\"");  
  
      readfile ($get_file);  
}  
?>