"We are back" « oc.at

[PHP] Mehrfacher Datei-Upload

moidaschl 11.09.2005 - 17:57 827 4
Posts

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Abend!

Ich bin gerade dabei ein Script zu schreiben wo zwei Files gleichzeitig upgeloaded werden sollen (huh - geht das?).

Entweder hab ich mich nur vertippt oder es is ein grundlegender Denkfehler bei der Sache, aber es kommt immer die Fehlermeldung "Bild groß fehlt", auch wenn ein Pfad angegeben wurde. Das er dann zum Upload nichtmehr kommt ist eh klar.

Warum?

Code: PHP
if(isset($_POST['submit'])) {
         // submitted
         // data checken
         $check = 0;
         if($_POST['titel'] == '') {
                echo "<center><font color=\"#B52E2E\"><b>Name fehlt</b></font></center>\n";
                $check++;
         }
         if($_POST['link'] == '') {
                $_POST['link'] = "n/A";
         }
         echo $_FILES['bild_big']['tmp_name'];
         if(!isset($_FILES['bild_big']['tmp_name'])) {
                echo "<center><font color=\"#B52E2E\"><b>Bild groß fehlt</b></font>
                </center>\n";
                $check++;
         }
         if($check == 0) {
            // uploaden
            $path_big = "images/sponsoren/".$_FILES['bild_big']['tmp_name'];
            if(!isset($_FILES['bild_small']['tmp_name'])) {
              $path_small = $path_big;
            } else {
              $path_small = "images/sponsoren/".$_FILES['bild_small']['tmp_name'];
            }
            move_uploaded_file($_FILES['bild_big']['tmp_name'], $path_big);
            move_uploaded_file($_FILES['bild_small']['tmp_name'], $path_small);
            $sql = "INSERT INTO sponsoren
                        (name, link, path_big, path_short)
                    VALUES
                        ('".$_POST['titel']."', '".$_POST['link']."',
                         '".$path_big."', '".$path_short."')";
            mysql_query($sql);
         }
         echo "<br>";
        }
        echo "<form method=\"post\" action=\"index.php?page=admin_sponsor&action=add_spon\">
        \n";
        echo "<table border=\"0\" align=\"center\" width=\"80%\" cellspacing=\"0\"
                class=\"archtable\"  cellpadding=\"2px\">\n";
        echo "<tr>\n";
        echo "<td class=\"top_right\" colspan=\"2\"> • <b>Sponsor hinzufügen</b></td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td class=\"body\"><b>Name</b></td>\n";
        echo "<td class=\"body_right\"><input name=\"titel\" type=\"text\" size=\"43\">
        </td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td class=\"body\"><b>Link</b></td>\n";
        echo "<td class=\"body_right\"><input name=\"link\" type=\"text\" size=\"43\">
        </td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td class=\"body\"><b>Bild - Groß</b></td>\n";
        echo "<td class=\"body_right\"><input name=\"bild_big\" type=\"file\" size=\"25\">
        </td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td class=\"body\"><b>Bild - Klein</b></td>\n";
        echo "<td class=\"body_right\"><input name=\"bild_small\" type=\"file\" size=\"25\">
        </td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td></td>\n";
        echo "<td><input type=\"submit\" name=\"submit\" value=\"- Eintragen -\"></td>\n";
        echo "</tr>\n";
        echo "</table><br \>\n";
        echo "</form>\n";

Ich hoff mein Programmierstil is ned zu schlecht, man hätte hald diverse HTML-Tags noch zusammenfassen können :D

thanks in advance,
daschl
Bearbeitet von moidaschl am 13.09.2005, 21:50

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4464
Schau dir mal genau an wie $_FILES aussieht (Hint: var_dump($_FILES); ), vielleicht hilft dir das schon?

cduke

Big d00d
Registered: Nov 2001
Location: 1230 Wien
Posts: 253
Hi,

in Deinem Form-Tag fehlt das Attribut enctype="multipart/form-data".

greetz cduke

cduke

Big d00d
Registered: Nov 2001
Location: 1230 Wien
Posts: 253
Noch etwas ist mir aufgefallen: statt den 1 Milliarden echo's kannst Du auch einfach den php-Tag schließen (?>;) und dann direkt in HTML loslegen - also die Gschichteln anbringen, die jetzt in den echo's stehen. Wenn Du wieder in php weiter machen willst, dann öffnest Du den php-Tag wieder <?php usw.

hth cduke

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von cduke
Hi,

in Deinem Form-Tag fehlt das Attribut enctype="multipart/form-data".

greetz cduke

oooh shit dass ich das vergessen habe, dachte ich hätte es drin. danke!

ja das mit den echos muss ich auch noch machen, nur in der hitze des gefechts mach ich einfach hunderte von denen :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz