Ergebnis 1 bis 5 von 5
  1. #1
    totomoto ist offline Routinier
    registriert
    22-11-2000
    Ort
    CH
    Beiträge
    444

    Unhappy bilder mit formular in mysql db laden?

    hi zusammen

    ich hab da ein problem ich möchte gern bilder mittels einem formular / php in eine mysql db laden. nur wie geht das?

    mit <input type='file' name='bild'> sende ich es nur wie bearbeite ich das jetzt mit php?
    und wie heisst der der feldtyp in mysql wenn ich nur .jgp, .gif und png bildformate zulassen möchte?
    und schlussendlich wie wird dann ein bild auf den server kopiert in welches verzeichnis??

    kann mir jemand helfen?

    besten dank.
    toto

    ps. im prinzip ist es doch das was hier beim attach file verwendet wird!?

  2. #2
    Avatar von mo
    mo
    mo ist offline Administrator
    registriert
    09-06-2000
    Ort
    /dev/null
    Beiträge
    5.401
    du solltest prinzipiell deine bilder nicht in einer DB speichern, denk nur mal dran, wie´s mit nem update bei den bildern dann aussieht. auch "veredelt" es die bilder nicht, wenn sie aus einer db kommen.
    denk nochmal drüber nach.
    bye,
    mo
    bye,
    mo

  3. #3
    totomoto ist offline Routinier
    registriert
    22-11-2000
    Ort
    CH
    Beiträge
    444

    aber wie macht man das denn?

    hi mo!

    aber wie macht man das denn? ist dann so, dass ich in die db nur den datei namen und den pfad eintrage??

    aber irgendwie muss doch das file trotzdem auf den server in images verzeichnis oder so?

    Also soll ich den datei namen in die db eintragen und und dann sagen geh und zieh das images aus
    /images ?

    aber wie kann ich dann zulassen das man ein bild überhaupt dahin speichern kann?

    besten dank.
    toto

  4. #4
    Avatar von mo
    mo
    mo ist offline Administrator
    registriert
    09-06-2000
    Ort
    /dev/null
    Beiträge
    5.401
    is nich schwer. du machst einen file-upload mit einem formular (input type=file name=datei).
    dann steht dir die variable datei_name mit dem namen des files zur verfügung. das musst du dann halt entsprechend in deinen images-ordner kopieren und in der db trägst du, wie du schon richtig vermutet hast, nur den namen der datei ein.
    bye,
    mo
    bye,
    mo

  5. #5
    Aljoscha L. ist offline Grünschnabel
    registriert
    04-10-2001
    Beiträge
    2
    Hm, man könnte die Bilder selbst einfach in ein Verzeichniss auf dem Webserver laden. Vielleicht ein kleines Beispiel:

    Code:
    <HTML>
    <HEAD>
    <TITLE>Bilder-Upload</TITLE>
    </HEAD>
    <BODY>
    <h1>Bilder-Upload</h1>
    
    <form action="img_accept.php4" method="post" enctype="multipart/form-data">
    <pre>
    Name der Bilddatei (real) <input type="text" name="dFilename">
    
    <input type="file" name="fImg">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000">
    </pre>
    </form>
    <hr noshade><i>Upload-Skript</i>
    
    </BODY>
    </HTML>
    So, das wäre immerhin einmal die HTML-Datei hierzu. dFilename ist der Name der Datei, wie sie schlussendlich im Verzeichniss auftauchen soll (allerdings inklusive der Dateierweiterung angeben!), und fImg ist die eigentliche Datei. MAX_FILE_SIZE ist eine Größe in Byte, ab der der Browser den Upload verhindert. Nun der Code der img_accept.php4:

    Code:
    <?
    $dPath="/pfad/zu/img/verzeichniss/absolut/"; // Dies ist das Verzeichniss zu den Bildern, ABSOLUT angegeben
    
    if(!isset($dFilename)) { echo "Fehler: Kein Dateiname angegeben!"; exit; }
    $imgType=array("jpg","png","gif");  // Array mit allen zugelassenen Dateieendungen
    
    if($fImg=="none") {  // Wenn Datei nicht hochgeladen ...
     echo "Datei konnte nicht empfangen werden!";
     exit;  // ... Ausführung abbrechen.
    }
    
    $err=0;
    for($i=0;$i<count($imgType);$i++) {
     if(substr($fImg_name,strlen($fImg_name)-2,3)!=$imgType[$i]) { $err++; }
    }
    
    if($err==count($imgType)) { echo "Datei entspricht keinem angeforderten Typus!"; exit; }
    
    if(file_exists($dPath.$dFilename)) {
     unlink($dPath.$dFilename);  // Altes File wird gelöscht
    }
    
    // Jetzt wird das File in den Image-Ordner kopiert
    if(rename($fImg,$dPath.$dFilename)==1) {
     echo "File erfolgreich kopiert!";
     Header("img_register.php4?filename=$dFilename&path=$dPath");
    } else {
     echo "Fehler: File konnte nicht erfolgreich kopiert werden!";
    }
    ?>
    Tscha, wahrscheinlich voll mit Fehlern - aber was soll's. So ungefähr sollte es funktionieren! Nach einem erfolgreichen Upload steht nun im jeweiligen Ziel-Ordner eine neue Datei zur Verfügung, entsprechend dem Namen, der angegeben war. Nun wird allerdings noch per Header-Redirect eine neue File aufgerufen namens 'img_register.php4', die das Bild in eine Text-Datei einträgt:

    Code:
    <?
     if(!isset($dPath) || !isset($dFilename))
     { echo "Kein Dateiname oder Pfad gegeben!"; exit; }
    
     $f=fopen("list.dat","r");
     $ts=time();
     fputs($f,"$dPath$dFilename;$ts\n");
     fclose($f);
     echo "Bild erfolgreich registriert!";
    ?>
    In diesem Skript wird die Datei inklusive Timstamp geloggt (man könnte auch sonstetwas loggen!), und somit wär's das. Eigentlich kein großer Aufwand ...!
    Mit freundlichen Grüssen,
    Aljoscha Leonhardt

Lesezeichen

Berechtigungen

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