Downloading aus MySQL Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Downloading aus MySQL Datenbank

    Hi!
    Ich weiß, die Überschrift passt nicht ganz zu meinem Problem...
    Ich habe mir eine php File gebastelt, mit der ich Dateien, die kodiert in meiner Datenbank liegen, ausgeben kann. Das funktioniert auch richtig gut bei Bildern.
    Bei allen anderen Dateien, die man aber eigentlich herunterladen sollte, gibt er nur eine .php datei zurück.
    Hier meine files.php:
    PHP-Code:
    include_once('sql.php');
    include_once(
    'start.php');
    include_once(
    'php4.php');
    include_once(
    'rights.php');

    connecten();

    if (isset(
    $_GET['getfile']))
        {
                
    $useridgetuserid($_GET['sessid']);
                
    $groupidgetgroupid($userid);
                
    $rightshaverights($userid$groupid4$_GET['getfile']);
                if (
    $rights>0)
                {
                    
    // hier sind die mySQL Daten einzufüllen
                    
    $sql 'SELECT * FROM `files` WHERE (`filesid` = \'' $_GET['getfile'] . '\') LIMIT 1';
                    
    //$result = @mysql_query($sql);
                    //$row = mysql_fetch_object($result);
                    //$row= querysqlarray($sql, '+');
                    
    $rowquerysql($sql'_');
                    
    $contentgetdatafile($row->filesid);
                    
    // Prüfen, ob die gewählte Datei tatsächlich ein Bild ist
                    // Dem Browser mitteilen, dass jetzt ein Bild kommt
                    
    header("Content-type: " $row->filestyp);
                    
    // Daten dekodieren und an den Browser senden
                    
    echo base64_decode($content);
                }
        } 
    In den Include-Dateien wird nichts geschrieben! -> die Header Ausgabe funktioniert. Das wurde mit Bildern ja erfolgreich getestet.

    Kann ich dem Browser beim Anklicken auf
    files.php?getfile=2 mitteilen, dass es sich bei der angeforderten Datei um eine rar-Datei handelt, die er auch dementsprechend behandeln soll?
    Als Typ steht in der Datenbank "application/octet-stream", was automatisch ausgelesen wurde.

    Ich hoffe, es kann mir jemand weiterhelfen.
    Vielen Dank im Voraus,
    comzine
    http://comzine.dyndns.org/

  • #2
    Wenns eine .rar ist, solltest du auch den richtigen Content-Type in die DB schreiben oder wenigstens zum Browser senden: application/x-rar-compressed

    Kommentar


    • #3
      Danke für die schnelle Antwort.
      Wenn ich nun aber die Datei files.php?getfile=2 aufrufe, und die Header Infos in der DB geändert habe, gibt der Browser weiterhin an, dass es sich um die Datei "files.php" handelt, die gedownloadet werden kann.
      Ich will aber, dass dem Browser direkt einen bestimmten Dateinamen übergeben wird. Wenn ich beispielsweise "Physik.rar" (der Dateiname ist in der Tabelle gespeichert) als Download auswähle, soll im "Speichern unter" - Dialog direkt dieser Dateiname stehen.
      MfG
      comzine
      http://comzine.dyndns.org/

      Kommentar


      • #4
        schick mal folgende header, damit sollte es bei jedem browser klappen
        PHP-Code:
        header("Content-type: wasdu/willst");
        header("Content-type: application/force-download");
        header("Content-type: application/octetstream");
        header("Content-Disposition: attachment; filename=$file");
        header("Content-Length: ".filesize($file)); 
        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Wow danke,
          genau so was habe ich gebraucht!!! THX
          MfG
          comzine
          http://comzine.dyndns.org/

          Kommentar

          Lädt...
          X