Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Bilderupload

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101

    Bilderupload

    Hallo Leute,

    ich habe da ein Problem/Frage.

    Ich habe in einer Form verschiedene Textfelder die in eine Datenbank eingetragen werden, darunter auch 2 felder um dateien (bilder) auswählen zu können.

    Was wäre der beste weg die Dateien hochzuladen und wie das bild zum jeweiligen Datensatz zuzuordnen. Ich habe schon überlegt ob es sinn machen würde das Bild auch in die DB mit einzutragen, aber das ist ja eigentlich nicht so gut und brint ja auch ned mehr.

    Kann mir jemand mit einem Script aushelfen oder einem verständlichen TUT das auch mal einer kappieren kann der noch ned so weit ist?

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    Ja, das Bild Upload Problem haben viele, ich hoffe ich kann dir mit meinem Script helfen...

    index.php

    Das ist das Formular ... enctype ist sehr wichtig !

    <form enctype=multipart/form-data action=senden.php method=post>

    Hier ist Das Feld zum Image auswählen

    <input type="file" name="picture">

    senden.php

    PHP-Code:

    // Generiert Zufallsnamen für Bild

    $zahl         =    md5 (uniqid (rand()));
    $image_name     =    
    $zahl[0] . $zahl[5] . $zahl[2] . $zahl[8] .                    $zahl[1] . $zahl[9] . $zahl[11] .$zahl[10].$zahl[13]. $zahl[7];

    // Die Datei Endung Bestimmen

    $pic_typ $_FILES['picture']['type'];
                        
                if(
    $pic_typ=="image/gif") {
                    
    $extension "gif";
                }
                if (
    $pic_typ=="image/jpg") {
                    
    $extension "jpg";            
                }
                if (
    $pic_typ=="image/jpeg") {
                    
    $extension "jpg";    
                }
                if (
    $pic_typ=="image/pjpeg") {
                    
    $extension "jpg";    
                }
                if (
    $pic_typ=="image/png") {
                    
    $extension "png";    
                }
                if (
    $pic_typ=="image/bmp") {
                    
    $extension "bmp";
                }

    // Destination
    $destination =    "upload/".$image_name.".".$extension;

    // Du musst volle Rechte haben in dem Order upload .. ich habe hier auf 777 gesetzt
            
    // Bild verschieben
    move_uploaded_file ($_FILES['picture']['tmp_name'], "$destination");
        
    // Vollständiger Bildname zum Speichern in MYSQL
    $bild    =    $image_name.".".$extension;

    // MySQL Query

    mysql_query("insert into tabelle(bild) values('$bild')"); 
    jetzt solltest du in der mysql drinnen stehen haben einen beliebigen image name mit der endung ... die datei findest du im upload verzeichnis


    mfg
    Michael
    Open Source, Open Mind

    MTS-FORUM

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Ja ok das ist schon mal sehr hilfreich und auch einfach zu lesen

    Ich werd das mal versuchen und melde mich dann mit Erfolg oder auch miserfolg zurück...

    Vielen Dank

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    ich hab mir auch viel mühe gegeben
    hoffe ich konnte dir helfen

    mfg
    Michael
    Open Source, Open Mind

    MTS-FORUM

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Also eingebaut und funkelt auch wunderbar

    etz hab ich aber 3 kleine sachen, wenn ich nun kein bild dazu auswähle, dann bekomme ich ja 2 kleine fehlermeldungen:

    Notice: Undefined variable: extension in /home/harley/hserver/harley/meister/senden.php on line 35

    Notice: Undefined variable: extension in /home/harley/hserver/harley/meister/senden.php on line 43
    dabei wird dann wieder eine zufallszahl in die db eingetragen, die natürlich dann nicht stimmen kann, daher vermute ich mal liegt das an der fehlenden endung. Am einfachsten wäre es ja dann wenn er einen eintrag machen würde mit einem standartpfad zu einem nopic.gif oder sowas oder nicht?

    Wenn ich nun zwei files hochladen möchte in ein anderes datenfeld, dann muß ich doch nur die form anderst benennen und das db feld umbenennen oder irre ich da?

  6. #6
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    Original geschrieben von ace23
    Also eingebaut und funkelt auch wunderbar


    etz hab ich aber 3 kleine sachen, wenn ich nun kein bild dazu auswähle, dann bekomme ich ja 2 kleine fehlermeldungen:


    dabei wird dann wieder eine zufallszahl in die db eingetragen, die natürlich dann nicht stimmen kann, daher vermute ich mal liegt das an der fehlenden endung. Am einfachsten wäre es ja dann wenn er einen eintrag machen würde mit einem standartpfad zu einem nopic.gif oder sowas oder nicht?

    Wenn ich nun zwei files hochladen möchte in ein anderes datenfeld, dann muß ich doch nur die form anderst benennen und das db feld umbenennen oder irre ich da?



    Freut mich zu hören ..

    Nunja, du kannst ja abfragen ob im picture feld was drinnen steht, dh. ob etwas hochgeladen wurde ..

    PHP-Code:

    IF (strlen(picture<"10")) {

    fehler .......

    }

    else {

    extensiondb eintragmove upload file usw..


    Das ist keine gute Idee, du brauchst einfach einen zweiten <input type=file > bereich in deiner form

    mfg
    Michael
    Open Source, Open Mind

    MTS-FORUM

  7. #7
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    as ist keine gute Idee, du brauchst einfach einen zweiten <input type=file > bereich in deiner form
    Wie meinst Du das nun?
    Ist das auf das zweite Bild bezogen zum uploaden oder um dem zu sagen das kein bild gewählt wurde?

  8. #8
    Registrierter Benutzer
    Registriert seit
    20.01.2003
    Ort
    Wien
    Beiträge
    65
    es ist keine gute idee eine neue form zu erzeugen nur wegen einem 2. bildupload ..
    vielmehr kannst du ein 2. input type=file in die bestehende form integrieren

    mfg
    Michael
    Open Source, Open Mind

    MTS-FORUM

  9. #9
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Die Variable "extension" muss vor den if Abfragen schon deklariert werden. Sonst wird sie am Ende des Blocks zerstört.

    PHP-Code:
    $extension ""
    // Oder irgendnen anderen Standardwert

    if (...) $extension "..."
    /*
    ....
    */ 
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  10. #10
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    hm also jetzt verstehe ich das ned so ganz.

  11. #11
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    In dem Quelltext gibt es die Stelle wo der Variable $extension ein Wert (je nach Bildtyp zugeordnet wird). Da die Variable $extension aber nicht ausserhalb der if Abfrage existiert, wird eine erzeugt und beim Ende der Abfrage ( beim } ) wieder zerstört. Das hilft dagegen:

    PHP-Code:
    /* ... */
    $pic_typ $_FILES['picture']['type'];
    $extension "";                    
    if(
    $pic_typ=="image/gif"$extension "gif";
     if (
    $pic_typ=="image/jpg"$extension "jpg";            
     if (
    $pic_typ=="image/jpeg")  $extension "jpg";    
     if (
    $pic_typ=="image/pjpeg"$extension "jpg";    
     if (
    $pic_typ=="image/png"$extension "png";    
     if (
    $pic_typ=="image/bmp"$extension "bmp";
    /* ... */ 
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  12. #12
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    Besteht die Möglichkeit für User meiner Webseite nicht nur Bilder sondern auch Code hochzuladen?

    Das wäre ja fatal, oder berücksichtigt das die Abfrage auf den Image Typ schon?

  13. #13
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    ja besteht - die Datei hat den bloß keine Dateiendung

  14. #14
    Registrierter Benutzer Avatar von Hondapower
    Registriert seit
    24.10.2002
    Ort
    München
    Beiträge
    34
    Mhmm... und wie kann ich das dann unterbinden, das dann irgendeiner seine PHP Scripte hochlädt und Unfug damit treibt?

    Oder wird das ohne Dateiendung nicht funktionieren?
    (Die Administration des Servers liegt nicht in meiner Hand...)

  15. #15
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    PHP Skripte werden nur als solche erkannt, wenn die Dateiendung in der httpd.conf registriert ist... ohne Endung sind es stinknormale, also ungefährliche, Textdateien.


Lesezeichen

Berechtigungen

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