Download Script

  • #1
L

Luca_

Aktives Mitglied
Themenersteller
Dabei seit
22.03.2006
Beiträge
36
Reaktionspunkte
0
Ich habe folgendes Script welches mir Downloads aus einer Datenbank liest. Da drin stehen Sachen wie Filename, Grösse, wann es hinzugefügt wurde und vorallem der Pfad!

Der Pfad ist jetzt z.b. /dls/file.zip
/dls ist der Ordner->dls' im obersten Verzeichnis des HomeDirectorys meines Users

Das ganze liegt auf einem Sharedwebhoster mit linux, muss ich jetzt denn ganzen Linuxpfad angeben oder den Pfad von meinem HomeFolder aus?
also
/home/user/dls/file.zip
oder wie bereits in der DB
/dls/file.zip
?
das PHP File ist in /home/user/public_html. Und ich möchte *nicht* mit HTML den Pfad direkt angeben, also z.b.
sondern
somit möchte ich dann auch in einer weiteren Tabelle Statistiken führen was für Daten am meisten heruntergeladen werden und von wem etc etc.

Wenn ich dieses Script jetzt so ausführe kann ich ein file namens dls-file.zip herunterladen, welches aber kein richtiges zip file ist vom mime-type her und schon gar nicht das richtige file auf dem Server, mit dem inhalt den ich schlussendlich ja möchte :)

Code:
<?php
  ob_start();
  include('config.php');
  include('head.php');
  connect_to_db();
  
  // alle downloads aus DB lesen und anzeigen
  $sql = ...;
  $result = mysql_query($sql) or die(mysql_error());
  while ($row = mysql_fetch_assoc($result)) {
    echo <a href='dls.php?act=view&id=.$row['id'].'>.$row['title'].</a><br>\n;
  }
  
  switch (@$_GET['act']) {
  case view:
    // hier detailierte infos des downloads mit link 
    break;
  case dl: // der teil der nicht richtig will
    if (isset($_GET['id'])) {
      // statistiken in DB schreiben
      $sql = SELECT
            *
          FROM
            dls
          WHERE
            id =->.$_GET['id'].';;
      $result = mysql_query($sql) or die('no can do :-> . mysql_error());
      $row = mysql_fetch_assoc($result);
      $prefix = /home/sarnoxc/public_html;
      $file_name = $row['path'];
      $file = $prefix.$row['path'];
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename='.$file_name.'');
      header('Content-Length:->.filesize($file));
      readfile($file);
    } else {
      echo error;
    } // if id end
    break;
  default:
    echo default!;
  } // switch end

  include('foot.php');
  ob_end_flush();
?>
wie kann man das machen?
 
  • #2
Also, wenn ich das richtig verstanden hast willst du den Downloadlink aus der DB mittels der ID holen!?! Der Aufruf könnte aber auch aus einem anderen Verzeichnis als /home/user/ kommen oder???
Ansonsten wäre das ja ganz einfach zu machen.

Schreib mal ob ich damit richtig liege.

Gruß
Christian
 
Thema:

Download Script

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben