kostenloser Webspace werbefrei: lima-city


upload + datenbank

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gil-galad

    gil-galad hat kostenlosen Webspace.

    huhu

    ähm könnte mir jemand helfen ich suche ein GAANZ einfaches upload script das gleichzeitig den dateinamen in ner datenbank speichert...

    Wär schön wenn jemand da was für mich hätte..
    (beim upload script sollte man also einfach nur einstellen können größe und dateitypen)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 1: Zum Testen, ob man hier uploaden kann:
    <?php
    echo "Uploads zugelassen: " . get_cfg_var("file_uploads") . "<br>";
    echo "Max. Upload Größe (Dateigröße der hochzuladenen Datei): " . get_cfg_var("upload_max_filesize") . "<br>";
    echo "Max. Script Speicher (Speicher den ein Script benutzen darf): " . get_cfg_var("memory_limit") . "<br>";
    echo "Max. \"post\" Daten (Menge an Daten die per \"post\" übermittelt werden): " . get_cfg_var("post_max_size") . "<br>";
    echo "Max. Laufzeit (Zeit des Ausführens eines Scripts): " . get_cfg_var("max_execution_time") . " Sek";
    ?>


    2: Tabelle erstellen:
    <?php
    //Verbindung mit Mysql: (Die Daten ersetzen oder irgendwo definieren)
        @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
            die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        mysql_select_db(MYSQL_DATABASE) OR
            die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
    
    $sql = "CREATE TABLE namen
    (
        ID     INT AUTO_INCREMENT PRIMARY KEY,
        name  VARCHAR(60)
    );";
    
    $result = mysql_query($sql) OR die(mysql_error());
    ?>


    3: Formular zum Datei hochladen:
    <form action="upload.php" method="post" enctype="multipart/form-data" name="upload">
    <input type="text" name="name">
    <input type="file" name="file">
    <input type="submit" name="submit" value="Upload">
    </form>


    4: Datei upload.php
    <?php
    
    // Variabeln festlegen
    $max_byte_size = 2097152;
    $allowed_types = "(jpg|jpeg|gif|bmp|png)";
    
    // Formular wurde abgeschickt
    if($_POST["submit"] == "Upload") {
    
    // Wurde wirklich eine Datei hochgeladen?
    if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
    
    // Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
    if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {
    
    // Datei auch nicht zu groß
    if($_FILES["file"]["size"] <= $max_byte_size) {
    
    // Alles OK -> Datei kopieren
    if(copy($_FILES["file"]["tmp_name"], $_FILES["file"]["name"])) {
    
    echo "Datei erfolgreich hochgeladen!<br>";
    echo "Name: " . $_FILES["file"]["name"] . "<br>";
    echo "Größe: " . $_FILES["file"]["size"] . " Byte<br>";
    echo "MIME-Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Link: <a href=\"" . $_FILES["file"]["name"] . "\">" . $_FILES["file"]["name"] . "</a>";
    
    }
    else {
    
    echo "Datei konnte nicht hochgeladen werden.";
    
    }
    
    }
    else {
    
    echo "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.";
    
    }
    
    }
    else {
    
    echo "Die Datei besitzt keine ungültige Endung.";
    
    }
    
    }
    else {
    
    echo "Keine Datei zum Hochladen angegeben.";
    
    }
    
    }
    else {
    
    echo "Bitte benutzen Sie das Upload Formular.";
    
    } 
    
    
    //Jetzt noch in der DB-Speichern
    
    //Verbindung mit Mysql: (Die Daten ersetzen oder irgendwo definieren)
        @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
            die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        mysql_select_db(MYSQL_DATABASE) OR
            die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
    
    $sql = "INSERT INTO uploads
                  (name)
            VALUES
                  ('".$_POST['name']."');";
    $result = mysql_query($sql) OR die(mysql_error());


    Edit: Hier noch ein paar Infos zum Upload: http://www.it-academy.cc/article/1359/PHP:+Upload+per+HTTP.html

    Beitrag geaendert: 7.4.2007 12:34:30 von nigolaz
  4. Autor dieses Themas

    gil-galad

    gil-galad hat kostenlosen Webspace.

    dankeschön, werde ich mir mal anschauen :)
  5. theoretisch würd' ich ihm ja mit diesem Script Recht geben,
    aber in der Datei upload.php in Zeile '3' ist ihm ein schreibfehler unterlaufen (hehe)
  6. wo bitte? in upload.php in zeile 3 steht ein kommentar, und der kommentar ist korrekt.
  7. Autor dieses Themas

    gil-galad

    gil-galad hat kostenlosen Webspace.

    Ich hab gleich noch ne frage...


    wie mache ich das, ne datei nicht zwei mal vorkommt, also z. b. unbenannt wird?
  8. Du könntest allgemein an alle hochgeladenen Datein noch einen Timestamp dranhängen, somit kommt kein Name zweimal vor. Oder nicht den Timestamp direkt, sondern vll das aktuelle Datum, was wohl übersichtlicher ist.
    Allerdings musst du dafür erst die Endung "abschneiden" und dann wieder dransetzen
    Also irgendwie so
    <?
    $file=$_FILES['file']['name'];
    
    $name=substr($file,0,-(strrpos($file,'.'))-1); // sucht nach dem letzten . und schneidet alles danach ab
    $type=strrchr($file,'.'); // sucht nach dem letzten . und schneidet alles davor ab
    $datum=date('_H_i_d_m_Y',time()); // Datum im Format _Stunde_Minuten_Tag_Monat_Jahr
    
    if(copy($_FILES['file']['tmp_name'], $name.$datum.$type)){
    //...
    ?>


    Beitrag geaendert: 9.4.2007 14:39:09 von tct
  9. y***************e

    Meinst du das nicht 2 mal die gleiche Datei hochgeladen wird, oder das nicht 2 mal eine Datei mit dem gleichen Namen hochgeladen wird?

    MFG
  10. Autor dieses Themas

    gil-galad

    gil-galad hat kostenlosen Webspace.


    Meinst du das nicht 2 mal die gleiche Datei hochgeladen wird, oder das nicht 2 mal eine Datei mit dem gleichen Namen hochgeladen wird?

    MFG


    das nicht zweimal eine datei mit gleichem namen im ordner ist, das führt ja zu verwirrung *g*

    @tct:so mein ichs .. ich kucks mir mal an. Oder so ...
  11. Autor dieses Themas

    gil-galad

    gil-galad hat kostenlosen Webspace.

    Ahh noch ne frage, wie gebe ich an wo hin die datei kommt?
  12. Versuch mal:
    copy($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name'])

    --> http://ch2.php.net/manual/de/function.copy.php

    EDIT: In upload.php, Zeile 20

    Beitrag geaendert: 11.4.2007 23:41:02 von nigolaz
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!