Problem bei Download erzwingen (nur bei exe Datein)

Manuel

Mitglied
Hallo,

ich habe ein eigene Download - Database in PHP & MySQL geschrieben. Ich habe aber jetzt ein Problem. Man kann alle Datein downloaden doch wenn ich eine exe Datei downloaden will (ich habe 2), wird die Datei zwar gedownloadet aber es werden 0 Bytes gedownloadet und der download wird als fertig markiert. Ihr seht unten das angehängte Bild. Mein Code sieht so aus:
PHP:
<?php
 session_start();
 include '../../config/config.inc.php';
 $session1 = $_SESSION['session1'];
 $sessionID1 = $_SESSION['session1ID'];
 $sessions = $_SESSION['session1_session'];
 $fileID = intval(mysql_real_escape_string($_GET['attachmentID']));
 $categorieID = intval(mysql_real_escape_string($_GET['categorieID']));
 
 $row = mysql_fetch_object(mysql_query("SELECT loadMemberSettings FROM data_files WHERE fileID = '$fileID' AND categorieID = '$categorieID'"));
 if ($row->loadMemberSettings == 1)
 {
      if (isset($_SESSION['session1']))
     {
         $row = mysql_fetch_object(mysql_query("SELECT * FROM data_files WHERE fileID = '$fileID' AND categorieID = '$categorieID'"));
         mysql_query("UPDATE data_files SET downloads = downloads + 1 WHERE fileID = '$fileID' AND categorieID = '$categorieID'");
         header('Content-type: application/'.$row->fileEnd.'');
         header('Content-Disposition: attachment; filename='.$row->filename.'');
     }
     else
     {
          echo 'Verweigerung!';
     }
 }
 else
 {
      $row = mysql_fetch_object(mysql_query("SELECT * FROM data_files WHERE fileID = '$fileID' AND categorieID = '$categorieID'"));
     mysql_query("UPDATE data_files SET downloads = downloads + 1 WHERE fileID = '$fileID' AND categorieID = '$categorieID'");
     header('Content-type: application/'.$row->fileEnd.'');
     header('Content-Disposition: attachment; filename='.$row->filename.'');
 }
?>

Aufbau der Datenbank ist:
Code:
CREATE TABLE IF NOT EXISTS `data_files` (
  `fileID` int(5) unsigned NOT NULL auto_increment,
  `categorieID` int(5) unsigned NOT NULL,
  `name` varchar(150) collate latin1_german2_ci NOT NULL,
  `filename` varchar(150) collate latin1_german2_ci NOT NULL,
  `fileEnd` varchar(150) collate latin1_german2_ci NOT NULL,
  `author` varchar(150) collate latin1_german2_ci NOT NULL,
  `authorForumID` int(5) unsigned NOT NULL,
  `description` text collate latin1_german2_ci NOT NULL,
  `picture` varchar(150) collate latin1_german2_ci NOT NULL,
  `downloads` int(5) unsigned NOT NULL,
  `loadMemberSettings` int(1) unsigned NOT NULL,
  PRIMARY KEY  (`fileID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=15 ;

Das wird eingetragen:
(2, 2, 'Name der Datei', 'Name.exe', 'exe', 'Manuel', 2, 'Mein Programm', '', 46, 0)

Ich habe echt ein Problem und weis nicht mehr was ich machen soll. Und schonmal danke an alle die mir helfen wollen :) Und ich hoffe ich bin hier richtig ;)
fenster.png
 
Zuletzt bearbeitet:
Naja, octet-stream hatte ich davor auch schon und es ging nicht. Auch wenn ich es jetzt eintrage, geht es nicht. Zu dem Bild, ich habe es angehängt und hochgeladen ich guck noch mal nach. ;)

Bild ist oben angehängt.
 
Zuletzt bearbeitet:
Du könntest ja sicherheitshalber mal die Datei-Länge mit angeben:

PHP:
header('Content-Length: ' . filesize($row->filename) );
 
header('Content-Length: ' . filesize("".$row->filename.""));
header('Content-type: application/'.$row->fileEnd.'');
header('Content-Disposition: attachment; filename='.$row->filename.'');

Hab ich unten eingefügt. Es geht immer noch nicht.
 
Zurück