Likes Likes:  0
  1. #1

    Mitglied seit
    02.10.2011
    Beiträge
    114

    Brauche PHP & HTML Code zum starten einer Download

    Ich brauche eure Hilfe, brauche einen PHP 7 Code und die dazu gehörige HTML 5 Code zum starten einer Download wo die Datei im Localhost liegt.Und über Download link startet.

    Das ganze Bitte so formulieren das es einfach verständlich ist, da wo ich den Code anpassen muss auf eigene Bedürfnisse.
    Ich kriege das ganze nicht habe wenig PHP Erfahrung und hoffe nun Ihr könnt mir weiter helfen.

    zB. habe ich diesen Code aus dem Internet aber ich weiß nicht wie ich oder wo ich den Code anpassen muss zB. auf den pfad wo die datei auf der festplatte hinterlegt ist oder den HTML teil zum starten von Download.

    Hier der Code:

    • <?php
      // Öffnet das Verzeichnis wo dieses Script liegt.
      $verzeichnis = opendir('.');
      // Verzeichnis lesen
      while ($file = readDir($verzeichnis))
      {
      // Höhere Verzeichnisse nicht anzeigen!
      if ($file != "." && $file != "..")
      {
      // Dateityp filtern. Es werden nur .exe-Dateien angezeigt
      if (strstr($file, ".exe"))
      {
      // Dateiendung vom Dateinamen filtern
      $name = $file;
      // Link erstellen
      if(!intval($_GET['download']))
      { //Gib den Link nur aus, wenn kein Filedownload angefordert ist
      echo '<html>';
      echo '<head>';
      echo '<meta http-equiv="refresh" content="2; url=download.php?download=1">'; //nach 2 Sekunden wird der Download ausgeführt.
      echo '</head>';
      echo '<body>';
      echo 'Falls kein automatischer Download startet, hier klicken: ';
      echo "<a href=\"./$file\">$file</a><br>\n";
      echo '</body>';
      echo '</html>';
      }
      }
      }
      }
      closeDir($verzeichnis); // Verzeichnis schließen

      if(file_exists($name) AND intval($_GET['download']))
      {
      header('Content-Description: File Transfer');
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename='.basename($name));
      header('Content-Transfer-Encoding: binary');
      header('Expires: 0');
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      header('Pragma: public');
      header('Content-Length: ' . filesize($name));
      readfile($name);
      exit();
      }
    • ?>


    könnte jemand mir tipps dazu geben.
    Danke
    Geändert von morice56 (13.01.2019 um 19:05 Uhr)
    Intel I5 2500k 4,4 Mhz/ Asus P8P67/ TeamGroup Elite DDR3/ Corsair Force 3 120Gb SSD/ Crucial M500 240 SSD/ MSI GeForce GTX 970/ Antec520W/ CM Storm Enforcer/ Creativ Sound Blaster Z

    •   Alt

      Anzeige
      Bitte einloggen, um diese Anzeige auszublenden.
       

  2. #2
    Avatar von Corn696
    Mitglied seit
    16.10.2010
    Beiträge
    1.350

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von morice56 Beitrag anzeigen

    zB. habe ich diesen Code aus dem Internet aber ich weiß nicht wie ich oder wo ich den Code anpassen muss zB. auf den pfad wo die datei auf der festplatte hinterlegt ist oder den HTML teil zum starten von Download.
    Also in der ersten Zeile steht öffne das Verzeichnis ( $verzeichnis = opendir('.'); ), also dort das gewünschte Verzeichnis eintragen.

    Gibt es eine Grund warum du nicht einfach das HTML Attribute download verwendest. Nur beim Internet Explorer muss man etwas tricksen.

    HTML a download Attribute
    |ASUS ROG Matrix R9 290X 4GB|
    |ASUS P8Z68V | Intel i7 2600K | Inno3D Geforce GTX 970 OC 3,5GB(1) | 16GB Mushkin Blackline 2133|
    |480GB Crucial M500 | BeQuiet! SP E10-CM 600W | X-Fi Titanium Fatal1ty | Beyerdynamic Custom One Pro Plus|
    |Fractal Design Define R5 PCGH-Edition (gewonnen :D) | Samsung UE40MU6179U | (1) abgeraucht|

  3. #3

    Mitglied seit
    30.07.2011
    Beiträge
    3.202

    AW: Brauche PHP & HTML Code zum starten einer Download

    Nur noch zwei Dinge zur Ausgangsfrage:

    Bitte heute kein PHP5 mehr lernen/nutzen, sondern PHP7, wenn PHP5 nicht zwingend erforderlich ist und man weiss, dass es dort kein Sicherheitsrisiko darstellt. Der Support ist eingestellt und PHP hält nichts von Kompatibilität. Mit ein wenig "Glück" darfst Du den Code anpassen, bevor er produktiv läuft.

    Das obige Beispiel wird nur mit kleinen Dateien funktionieren, da readfile die gesamte Datei auf dem Server auf einmal liest. Falls das mit dem Download-Attribut nicht funktioniert, würde ich eher sowas verwenden
    GitHub - saleemkce/downloadable: Highly powerful download script written in PHP, downloads web assets in seconds!

  4. #4
    Avatar von Corn696
    Mitglied seit
    16.10.2010
    Beiträge
    1.350

    AW: Brauche PHP & HTML Code zum starten einer Download

    Jup teilweise echt erschreckend wie viele Seiten dort draußen noch auf php5 laufen. Aber immerhin haben ja einige Hoster in der letzten Zeit php5 eingestellt.

    War ganz lustig wie manche die zig Benachrichtigungen dazu ignoriert hatten und ihre Seite auf "einmal" nicht mehr lief und dann auf dem Hoster rumhaken.
    |ASUS ROG Matrix R9 290X 4GB|
    |ASUS P8Z68V | Intel i7 2600K | Inno3D Geforce GTX 970 OC 3,5GB(1) | 16GB Mushkin Blackline 2133|
    |480GB Crucial M500 | BeQuiet! SP E10-CM 600W | X-Fi Titanium Fatal1ty | Beyerdynamic Custom One Pro Plus|
    |Fractal Design Define R5 PCGH-Edition (gewonnen :D) | Samsung UE40MU6179U | (1) abgeraucht|

  5. #5

    Mitglied seit
    02.10.2011
    Beiträge
    114

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von fotoman Beitrag anzeigen
    Nur noch zwei Dinge zur Ausgangsfrage:

    Bitte heute kein PHP5 mehr lernen/nutzen, sondern PHP7, wenn PHP5 nicht zwingend erforderlich ist und man weiss, dass es dort kein Sicherheitsrisiko darstellt. Der Support ist eingestellt und PHP hält nichts von Kompatibilität. Mit ein wenig "Glück" darfst Du den Code anpassen, bevor er produktiv läuft.

    Wie und wo kann oder muss ich es auf meine gegebenheiten anpassen kannst du mir das sagen bitte.
    Ich brauche es für die Schule. Grade mal paar stunden PHP und nun sollen wir sowas programmieren

    Das obige Beispiel wird nur mit kleinen Dateien funktionieren, da readfile die gesamte Datei auf dem Server auf einmal liest. Falls das mit dem Download-Attribut nicht funktioniert, würde ich eher sowas verwenden
    GitHub - saleemkce/downloadable: Highly powerful download script written in PHP, downloads web assets in seconds!
    Ich hatte nur ganz kurz PHP in der Schule und muss nun so was hier programmieren daher brauche ich euer Hilfe weil ich das für die Schule brauche.
    Ich meinte PHP 7 habe mich verschrieben
    Wäre nett wenn man mir weiter helfen könnte.
    Geändert von morice56 (13.01.2019 um 19:05 Uhr)
    Intel I5 2500k 4,4 Mhz/ Asus P8P67/ TeamGroup Elite DDR3/ Corsair Force 3 120Gb SSD/ Crucial M500 240 SSD/ MSI GeForce GTX 970/ Antec520W/ CM Storm Enforcer/ Creativ Sound Blaster Z

  6. #6

    Mitglied seit
    30.07.2011
    Beiträge
    3.202

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von morice56 Beitrag anzeigen
    Wäre nett wenn man mir weiter helfen könnte.
    Hast Du denn die Antwort von Corn696 (das mit dem Download-Attribut) ausprobiert? Wenn dem Lehrer nicht die begründete Antwort genügt, dass es dafür (mittlerweile) bessere Lösungen als PHP gibt, dann hat er m.M.n. seinen Beruf als Informatiklehrer verfehlt. Auch das verlinkte Script wird keinen Download nach einem Abbruch wieder aufnehmen können und ist damit für größere Dateien ungeeignet

    Ich habe Deinen Text mal auf das wichtigste zusammen gekürzt. Du willst nicht die erste Datei aus dem Ordner herunter laden, sondern eine, die Du angibst.

    Folgendes auf dem Server als "download.php" abspeichern
    PHP-Code:
    <?php
    // Öffnet das Verzeichnis wo dieses Script liegt.
    $name "meinedatei.pdf";

    if(
    file_exists($name))
    {
      
    header('Content-Description: File Transfer');
      
    header('Content-Type: application/octet-stream');
      
    header('Content-Disposition: attachment; filename='.basename($name));
      
    header('Content-Transfer-Encoding: binary');
      
    header('Expires: 0');
      
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
      
    header('Pragma: public');
      
    header('Content-Length: ' filesize($name));
      
    readfile($name);
      exit();
    }
    ?>
    Folgedes im selben Ordner als "index.html" abspeichern
    HTML-Code:
    <HTML>
      <HEAD>
        <TITLE>
          Download-Test
        </TITLE>
      </HEAD>
    
      <body>
        <a href="download.php">download mit PHP</a>
        <br>&nbsp;<br>
        <a href="meinedatei.pdf" download>download mit 'download' Tag</a>
        <br>&nbsp;<br>
        <a href="meinedatei.pdf">anzeigen</a>
      </body>
    </HTML>
    Dann noch in den selben Ordner eine Datei (hier ein PDF-File, kann auch ein Bild sein, hauptsache es ist KLEIN(*) und der Browser könnte die Datei auch selber anzegien) legen, die im Beispiel "meinedatei.pdf" heißt.

    Und dann "index.html" auf dem Server aufrufen. Nun kannst Du (bzw. zumindest ich auf meinem Server mit PHP 7.2 und FF 64) die Datei per PHP oder per HTML5-Attribut herunter laden oder im Browser anzeigen.

    Je nach Nutzen musst du halt den Dateinamen im HTML oder PHP-Code austauschen. Man könnte ihn auch als Parameter übergeben, aber wie heisst das so schön, das bleibt dem geneigeten Leser als Übung überlassen

    Was KLEIN(*) bedeutet, weiss ich nicht, das ging aus den paar Links, die ich gelesen habe, nicht hervor und es war mir auch schnurzpiepegal. Mal waren es 10MB, mal auch ein paar hundert. Zum Test auf dem eigenen Server (oder dem in PHP 7 integrierten) egal, beim Hoster hätte ich keine Lust, mir deshalb eine passenden Warnung einzufangen.

    Zitat Zitat von Corn696 Beitrag anzeigen
    Jup teilweise echt erschreckend wie viele Seiten dort draußen noch auf php5 laufen.
    Es gibt auch noch Hoster, die bis heute php 5.6 patched haben. Mal sehen, was in PHP 7.3 wieder alles nicht geht, damit ich wenigstens wieder gut 2 Jahre Ruhe habe.

    Müsste ich mit meiner Seite nochmal anfangen, würde ich wohl das Geld für einen ASP.NET Server ausgeben und hätte dann Ruhe.

  7. #7
    Avatar von ZAM
    No Adblocker!

    Mitglied seit
    17.12.2008
    Ort
    Fürth
    Beiträge
    2.454

    AW: Brauche PHP & HTML Code zum starten einer Download

    Hey, man sollte nicht von modernem PHP predigen und dann solch veralteten Gammel mit bspw. altem Array-Def, unnötigen Doublequotes bei jedem String, keinen Typ-"Sicherheit" bei den Methoden und Variablen etc. verlinken ;p
    Wartungsdrohne
    "Und wenn einer so ein Bug-Loch entdeckt, Granate rein!"
    ASRock X99 Extreme4 | i7-5820K @ 4,2 OC 1.24v | Crucial 4x4 GB DDR4-2400 | 4xSSD,2x2TB HDD | ZOTAC GTX 980 Ti AMP! Edition | ASUS Xonar DGX PCIe | be quiet! Straight Power 10-CM Modular | Fractal R5 Define

  8. #8

    Mitglied seit
    30.07.2011
    Beiträge
    3.202

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von ZAM Beitrag anzeigen
    Hey, man sollte nicht von modernem PHP predigen und dann solch veralteten Gammel mit bspw. altem Array-Def, unnötigen Doublequotes bei jedem String, keinen Typ-"Sicherheit" bei den Methoden und Variablen etc. verlinken ;p
    Ich predige garnichts, ich habe nur darauf hingewiesen, dass man PHP 5 leider vergessen kann. Aus meiner Sicht ist das ein riesengroßes Leider, für private Projekte, die nicht nur im abgeschotteten Heimnetz laufen, ist PHP m.M.n. völlig unbrauchbar, wenn man sich nicht ständig darum kümmern will. Und zwar nicht als irgendwelchen Designerwägungen sondern weil sich die Leute alle 2-3 Jahre dazu entscheiden, inkompatibele, neue Versionen heraus zu bringen.

    Wenn Du etwas bessreres hast, dann immer her damit. Besser wie ein einfach readfile wird es allemal sein, wenn es zwingend PHP sein muss. Ob der Code für den hiesigen Zweck ein Security-Audit überstehen muss, wage ich auch zu bezweifeln.

    Apropos "veralteten Gammel". falls die rote Farbe Deines Nicks irgendwas damit zu tun hat, dass Du nicht nur einfaches Forenmitglied hier bist, finde ich es schon "lustig", dass Du auf mögliche Securityprobleme in PHP-Code hinweist, aber immer noch nicht dafür sogst, dass man sich 2019 endlich per https mit dem PCGH-Forum anmelden kann. Bei der Größe des Forums ist die Sicherheit der User vermutlich irrelevant.
    Geändert von fotoman (15.01.2019 um 20:20 Uhr)

  9. #9
    Bunkasan
    Gast

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von fotoman Beitrag anzeigen
    Apropos "veralteten Gammel". falls die rote Farbe Deines Nicks irgendwas damit zu tun hat, dass Du nicht nur einfaches Forenmitglied hier bist, finde ich es schon "lustig", dass Du auf mögliche Securityprobleme in PHP-Code hinweist, aber immer noch nicht dafür sogst, dass man sich 2019 endlich per https mit dem PCGH-Forum anmelden kann. Bei der Größe des Forums ist die Sicherheit der User vermutlich irrelevant.
    Dem aufmerksamen Wald und Wiesen Surfer wäre aufgefallen, dass die Anmeldung über HTTPS läuft. Nur der Rest nicht... wegen Werbung und so...

  10. #10
    Avatar von ZAM
    No Adblocker!

    Mitglied seit
    17.12.2008
    Ort
    Fürth
    Beiträge
    2.454

    AW: Brauche PHP & HTML Code zum starten einer Download

    Zitat Zitat von fotoman Beitrag anzeigen
    Apropos "veralteten Gammel". falls die rote Farbe Deines Nicks irgendwas damit zu tun hat, dass Du nicht nur einfaches Forenmitglied hier bist, finde ich es schon "lustig", dass Du auf mögliche Securityprobleme in PHP-Code hinweist, aber immer noch nicht dafür sogst, dass man sich 2019 endlich per https mit dem PCGH-Forum anmelden kann. Bei der Größe des Forums ist die Sicherheit der User vermutlich irrelevant.
    Zur (minderen) Relevanz und kommenden Dingen gibt es mind. einen Beitrag im Forum.

    Zitat Zitat von Bunkasan Beitrag anzeigen
    Dem aufmerksamen Wald und Wiesen Surfer wäre aufgefallen, dass die Anmeldung über HTTPS läuft. Nur der Rest nicht... wegen Werbung und so...
    Das zuletzt erwähnte war mal das Problem Ist aber nicht mehr relevant. Kommt Zeit, kommt globales SSL.
    Wartungsdrohne
    "Und wenn einer so ein Bug-Loch entdeckt, Granate rein!"
    ASRock X99 Extreme4 | i7-5820K @ 4,2 OC 1.24v | Crucial 4x4 GB DDR4-2400 | 4xSSD,2x2TB HDD | ZOTAC GTX 980 Ti AMP! Edition | ASUS Xonar DGX PCIe | be quiet! Straight Power 10-CM Modular | Fractal R5 Define

Ähnliche Themen

  1. HTML Code Sammlung?!
    Von KAEPS133 im Forum Programmierung und Webdesign
    Antworten: 4
    Letzter Beitrag: 06.07.2011, 17:14
  2. Suche PHP und HTML/CSS(eher Designer) News Seiten
    Von TKing im Forum Programmierung und Webdesign
    Antworten: 5
    Letzter Beitrag: 02.11.2010, 12:26
  3. PC per "Code" Eingabe starten ?
    Von Sickness im Forum Casemods
    Antworten: 17
    Letzter Beitrag: 11.05.2010, 23:09
  4. Banner mit HTML code
    Von Dashquide im Forum Programmierung und Webdesign
    Antworten: 9
    Letzter Beitrag: 10.05.2010, 20:27
  5. html code erstellt aber er funz nicht brauche dringend hilfe !!!
    Von bbubi0990 im Forum Programmierung und Webdesign
    Antworten: 26
    Letzter Beitrag: 07.03.2010, 18:48

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •