[PHP] Suche Uploadscript

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Diversity, 26. März 2006 .

Schlagworte:
  1. 26. März 2006
    Uploadscript

    Ich bräuchte ein ganz simples Uploadscript, dass einem User erlaubt beliebige Dateien auf meinen Webspace zu uppen und automatisch einen Downloadlink generiert.

    Sonstige Funktionen brauchts nicht.

    Google hat mich mit extrem komplizierten Ergebnissen überschüttet.
    Programmiersprachlich kann ich nur HTML Basics...

    Kann mir jemand weiterhelfen?
     
  2. 26. März 2006
    Hallo!

    Vielleicht ist das hier das richtige für dich ?
    oder ist das vllt zu komplex?

    mfg SpeX
     
  3. 26. März 2006
    Hab ich jetzt mal ausprobiert, aber wie bau ich das ein?
    Hab den ordner entpackt und hochgeladen.
    Woltle dann die index.php aufrufen, aber dann kommt immer 403 Forbidden...

    Edit: OK, weiss wieso. Mein Space erlaubt kein PHP...
     
  4. 26. März 2006
    Kann mir jemand sagen wieso das bei mir nicht geht ?

    Code:
    <?php
    
    //-----------------------------------------------------------------//
    // Konfiguration Anfang
    //-----------------------------------------------------------------//
    // Pfad zum Bilderverzeichnis, mit / am Ende!
    // kann so bleiben wenn bei $URL unterhalb das Verzeichnis auch bilder heisst 
    $picpfad = '/html/templates/bilder/';
    
    // URL zum Uploadbilderverzeichnis
    $URL = 'user144.terra-hosting.de/html/templates/bilder/';
    
    // Anzahl Uploadfelder
    $erlaubte_uploads = 1;
    
    // max. Uploadgroesse in KB
    $max_upl_size = 1500;
    
    // Erlaubte Dateiendungen, Dateiendungen mit Komma trennen und klein schreiben
    $arr_erlaube_dateityp = array(gif,jpg,png,zip,exe);
    //-----------------------------------------------------------------//
    // Konfiguration Ende
    //-----------------------------------------------------------------//
    
    // Header ausgeben
    echo $output = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadheader.html"));
    //-----------------------------------------------------------------//
    // Uploadformular
    //-----------------------------------------------------------------//
    if (!isset($_POST['PICUPLOAD'])) {
    
    // Uploadform ausgeben 
    uploadformausgabe();
    
    } else {
    //-----------------------------------------------------------------//
    // Upload ausfuehren
    //-----------------------------------------------------------------//
    $erlaubte_extensionen = join(', ',$arr_erlaube_dateityp);
    
    // Uploaddurchlauf Start
    for ($i=0; $i<count($_FILES['UPFILE']['name']); $i++) {
    
    if ($_FILES['UPFILE']['name'][$i] == '') {
    continue;
    }
    
    // Zeichenfilter
    $File = strtr(stripslashes($_FILES['UPFILE']['name'][$i]), '\'" |\\/?!*:#', '___________');
    
    // Dateiendung ermitteln
    $punkt = strrpos($File, '.');
    $laenge = strlen($File);
    $endung = strtolower(substr($File, -($laenge - $punkt - 1)));
    $dname = substr($File, 0, -($laenge - $punkt - 1));
    
    // Fehlerausgabe wenn Dateiendung nicht erlaubt
    if (!in_array($endung, $arr_erlaube_dateityp)) {
    fehlerausgabe("Die Dateiendung <b>$endung</b> ist nicht erlaubt");
    continue;
    }
    
    // Dateigroessencheck
    if ($_FILES['UPFILE']['size'][$i] > ($max_upl_size * 1024)) {
    $zugross = round($_FILES['UPFILE']['size'][$i]/1024, 2);
    fehlerausgabe("Datei zu gro&szlig;");
    continue;
    }
    
    switch($_FILES['UPFILE']['error'][$i]) {
     case 0:
     break;
     case 1:
     fehlerausgabe("Die Datei ist zu gross");
     continue 2;
     break;
     case 2:
     fehlerausgabe("Die Dateigr&ouml;&szlig;e &uuml;bersteigt das erlaubte Limit von $max_upl_size KB");
     continue 2;
     break;
    }
    
    
    
    $dateipfad_name = $picpfad.$File;
    
    // Zufallsdateiname erzeugen
    $rand_value = randomstring($File);
    $newfilenamekompl = "$rand_value.$endung";
    $savename = $picpfad.$newfilenamekompl;
    
    // hochgeladene Daeien speichern
    if(@move_uploaded_file($_FILES['UPFILE']['tmp_name'][$i], $savename)) {
    
    // Zusammenfassen fuer Uploadstatusausgabe
    if (isset($arr_erlaube_dateityp) and in_array($endung, $arr_erlaube_dateityp)) {
    
    // Ausgabe anpassen falls noetig
    $show_uploadokfiles .= "<b>$File</b> gespeichert als: <br><a href=\"$URL/$newfilenamekompl\" target=\"_blank\">$newfilenamekompl</a><br>";
    }
    
    chmod($savename, 0777);
    
    } else {
    fehlerausgabe("Kann Datei nicht speichern");
    }
    }
    
    
    if (isset($errors) and count($errors)>0) {
    Uploadfehler($errors);
    }
    
    if ($show_uploadokfiles != '') {
    echo preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadok.html"));
    }
    
    if (!file_exists($picpfad)) {
    echo "<b>Zielverzeichnis $picpfad nicht gefunden</b><br>";
    } elseif (!is_writable($picpfad)) {
    echo "<b>Zielverzeichnis $picpfad nicht beschreibar</b><br>";
    clearstatcache();
    } else {
    echo "<a href=\"index.php\">Zum Uploadformular zur&uuml;ck</a>";
    }
    
    }
    // Footer ausgeben 
    echo $output = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadfooter.html"));
    //-----------------------------------------------------------------//
    // Zufallszeichen fuer Dateiname
    //-----------------------------------------------------------------//
    function randomstring($dateiname) {
    $dateiname = strtolower(substr(md5(microtime()),0,25));
    return $dateiname; 
    }
    //-----------------------------------------------------------------//
    // Templateausgabe
    //-----------------------------------------------------------------//
    function tparser($tmplname) {
    $lines = implode("",file($tmplname));
    return $lines;
    }
    
    //-----------------------------------------------------------------//
    // Uploadform
    //-----------------------------------------------------------------//
    function uploadformausgabe() {
    global $erlaubte_uploads, $zeige_uploadrechte, $max_upl_size;
    
    
    if ($_SERVER['QUERY_STRING'] !== '') {
    $action = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
    } else {
    $action = $_SERVER['PHP_SELF'];
    }
    
    $max_upl_size_out = $max_upl_size * 1024; 
     
    $dateicount = 0;
    for ($i=0; $i<$erlaubte_uploads; $i++) {
    $dateicount++;
    $uploadrowout .= preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadfilerow.html"));
    }
    
    $show_uploadlimitationen = zeige_uploadlimits();
    $uploadformhtml = preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadtable.html"));
    
    echo $uploadformhtml;
    }
    
    //-----------------------------------------------------------------//
    // Zeige Uploadfehler
    //-----------------------------------------------------------------//
    function Uploadfehler($errors) {
    
    foreach($errors as $file => $message) {
    $show_noupload .="<li> $file: $message.<br>";
    }
    $show_uploadlimitationen = zeige_uploadlimits();
    echo preg_replace("/<__(\w.+?)__>/e", "\$\\1", tparser("templates/uploadfehler.html"));
    }
    
    
    //-----------------------------------------------------------------//
    // Uploadlimitationen ausgeben
    //-----------------------------------------------------------------//
    function zeige_uploadlimits() {
    global $arr_erlaube_dateityp, $max_upl_size;
    
    $erlaubte_extensionen = join(', ',$arr_erlaube_dateityp); 
    
    if ($max_upl_size > 1024) {
    $maximum = round(($max_upl_size / 1024), 2) . "MB";
    } else {
    $maximum = "$max_upl_size KB";
    }
    return "<b>Dateigr&ouml;&szlig;enlimit</b>: $maximum<br><b>Erlaubte Dateiendungen</b>: $erlaubte_extensionen";
    }
    
    //-----------------------------------------------------------------//
    // Fehlerausgabe
    //-----------------------------------------------------------------//
    function fehlerausgabe($message, $delete = false) {
    global $errors, $File, $dateipfad_name;
    
    $errors[$File] = $message;
    
    if ($delete == true) {
    unlink($dateipfad_name);
    }
    }
    //-----------------------------------------------------------------//
    ?>
    
    Das isi die .txt Datei, ist da ein Fehler drin ? Die Pfade stimmen eigentlich...
     
  5. 26. März 2006
    $picpfad und $URL musst du nur ändern.
    vielleicht noch $arr_erlaube_dateityp

    und wenn du ne ausgabe wie bei z.b. rapidshare haben möchtest, dann musste hier auch noch nen bisserl was anpassen.
    edit: du musst dem script/ordner aber auch rechte auf dem server geben.
     
  6. 26. März 2006
    das habe ich alles danke, aber es geht trotzdem ned
     
  7. 26. März 2006
    k.a. ob es damit behoben wird.. ist mir eben aufgefallen:

     
  8. 26. März 2006
    Kann nicht mal jemand ein komplettes script machen, wo man nur noch ganz oben die serverdaten eintragen muss? Währe echt nett, da sich hier die wenigsten mit PHP auskennen (glaube ich zumindest).
    8)

    //EDIT: auf Funpic.de - Kostenlose Homepage mit FTP, MySQL und PHP bekommt ihr kostenlosen space mit php und mysqul... :]
     
  9. 15. Februar 2010
    Suche Uploadscript

    Morgen,

    ich suche ein Uploadscript.

    Es soll können:

    *Bilder hochladen (nur Bilder; png, gif, jpg, jpeg, bmp)
    *Die Bilder in einem Ordner speichern
    *Einen Link der beim hochladen beim Bild angegeben wurde, in einer Mysql Datenbank zum Richtigen Bild speichern sodass später bei der Ausgabe jedes Bild mit dem richtigen Link verknüpft ist.


    Ich hoffe ihr könnt mir helfen
     
  10. 15. Februar 2010
    AW: Suche Uploadscript

    Das macht irgendwie keinen Sinn. Wenn du das Bild hochgeladen hast, ist der Link zum Bild halt http://www.deine-domain.de/dein-ordner/dein.bild
     
  11. 15. Februar 2010
    AW: Suche Uploadscript

    Entweder du suchst dir jemanden, der dir das schnell mal scripted, oder du bastelst dir das selbst aus ein paar Codeschnippseln (Google) zusammen.
     
  12. 20. Februar 2010
    AW: Suche Uploadscript

    Ich kan dir wenn du möchtest n kleines Script schreiben das du benutzen kannst!

    Hier ein Beispiel das ich im PHP Unterricht gemacht hab um Dateien von mir parat zu haben:

    Link Auf Kilu Space

    Ich hab das ganze n bisschen aufgepeppt das es nich so schlicht aussieht...

    Nach dem Motto: Das könnte ihre Seite sein...

    Brauchst du denn auch ein Script das den Ordner zum hochladen schützt (htaccess) und das Verzeichnis der hochgeladenen Dateien mit Downloadmöglichkeit auflistet?

    Möchtest du die Bilder nur runterladen oder auch eine Vorschau möglichkeit haben?

    BTW: Mir fällt grad auf das der Thread eher ins Programmierer gesucht Forum passt...
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.