pete: upload bild

Hi, ich möchte gerne ein Bild uploaden.

folgender aufbau: die seite index.php included das formular, welches logischweise an index.php sendet, da es ja dort includet ist.

folgendes script:

$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
    copy("$tempname", "$name");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";

Fehlermeldung kommt keine, allerdings ist das Bild nirgends...
habt ihr irgendwelche vorschläge?

  1. Hi pete,

    folgender aufbau: die seite index.php included das formular, welches logischweise an index.php sendet, da es ja dort includet ist.

    Diese Schlussfolgerung ist so geschrieben sinnlos, denn die Verarbeitung der Formulardaten kann ja auch in einem ganz anderen Script erfolgen.

    $tempname = $_FILES['file']['tmp_name'];
    $name = $_FILES['file']['name'];
        copy("$tempname", "$name");
        echo "Die Datei $name wurde erfolgreich hochgeladen!";

    Fehlermeldung kommt keine, allerdings ist das Bild nirgends...
    habt ihr irgendwelche vorschläge?

    Erstens: Hast du error_reporting auch auf E_ALL gesetzt?

    Hast du im Form-Tag für enctype auch multipart/form-data angegeben?

    Um den hochgeladenen File zu verschieben, empfiehlt sich die Fuktion move_uploaded_file().
    Und noch etwas: Ist ist _sehr_ schlechter Stil, "$variable" zu schreiben - da brauchst du doch gar keine Anführungszeichen.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)
    1. Diese Schlussfolgerung ist so geschrieben sinnlos, denn die Verarbeitung der Formulardaten kann ja auch in einem ganz anderen Script erfolgen.

      naja ich weiss ja nicht was für infos ihr brahct
      verarbeitet wird das form von der gleichen seite wie das form selbst

      Erstens: Hast du error_reporting auch auf E_ALL gesetzt?

      Natürlich

      Hast du im Form-Tag für enctype auch multipart/form-data angegeben?

      Natürlich

    2. das gesamte form:

      echo "     <form enctype="multipart/form-data" name="anzeige" action="" . $_SERVER['PHP_SELF'] . "?register=" . $enum->NEW_OFFERT . "&action=" . $enum->INSERT_PICTURE . "" method="post">";
        echo "  <table cellpadding="0" cellspacing="0">";
        echo "        <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "   <td align="right" class="newstext">Rubrik:&nbsp;</td>";
        echo "   <td align="left" class="newstext">";
        echo "              <select name="rubrik" class="gender">";

      //Fülle Rubrik-Selectbox ab
        $rubrik = mysql_query("SELECT ID, Rubrik FROM tblRubrik;")
          or die($enum->ERROR_SELECT);
        $anzrubrik = mysql_num_rows($rubrik);

      for($x = 0; $x < $anzrubrik; $x++)
        {
          mysql_data_seek($rubrik, $x);
          $temp = mysql_fetch_array($rubrik);

      echo "<option value="" . $temp[0] . "">" . $temp[1] . "</option>";

      }

      echo "              </select></td>";
        echo "   <td align="right" class="newstext">&nbsp;</td>";
        echo "      <td align="left" class="newstext">&nbsp;</td>";
        echo "        </tr>";
        echo "        <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "   <td align="right" class="newstext">Interesse:&nbsp;</td>";
        echo "   <td align="left" class="newstext">";
        echo "              <select name="interesse" class="gender">";

      //Fülle Interesse-Selectbox ab
        $kategorie = mysql_query("SELECT ID, Kategorie FROM tblKategorie WHERE NewsKategorie = 0;")
          or die($enum->ERROR_SELECT);
        $anzkat = mysql_num_rows($kategorie);

      for($x = 0; $x < $anzkat; $x++)
        {
          mysql_data_seek($kategorie, $x);
          $temp = mysql_fetch_array($kategorie);

      echo "<option value="" . $temp[0] . "">" . $temp[1] . "</option>";

      }

      echo "              </select></td>";
        echo "   <td align="right" class="newstext">&nbsp;</td>";
        echo "      <td align="left" class="newstext">&nbsp;</td>";
        echo "        </tr>";
        echo "    <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "      <td align="right" class="newstext">Titel:&nbsp;</td>";
        echo "   <td align="left" class="newstext"><input type="text" class="user" name="titel"></td>";
        echo "   <td align="right" class="newstext">&nbsp;</td>";
        echo "      <td align="left" class="newstext">&nbsp;</td>";
        echo "    </tr>";
        echo "    <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "   <td valign="top" align="right" class="newstext">Anzeige:&nbsp;</td>";
        echo "   <td colspan="3" align="left" class="newstext">";
      echo "                    <textarea name="anzeigetext" rows="10" cols="45" class="editor"></textarea>";
        echo "    </td>";
        echo "    </tr>";
        echo "    <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "      <td align="right" class="newstext">Bild:&nbsp;</td>";
        echo "   <td align="left" class="newstext"><input type="file" class="pic" name="datei"></td>";
        echo "   <td align="right" class="newstext">&nbsp;</td>";
        echo "      <td align="left" class="newstext">&nbsp;</td>";
        echo "    </tr>";
        echo "    <tr>";
        echo "      <td width="23">&nbsp;</td>";
        echo "   <td align="right" class="newstext">&nbsp;</td>";
        echo "   <td colspan="3" width="385" align="right" class="newstext">&nbsp;";
        echo "            <table align="right" width="140" cellpadding="0" cellspacing="0">";
        echo "              <tr>";
        echo "                <td width="70" align="center" class="on" onclick="anzeige.reset();">reset</td>";
        echo "                <td width="70" align="center" class="on" onclick="sendAnzeige();">senden</td>";
        echo "              </tr>";
        echo "            </table>";
        echo "          </td>";
        echo "    </tr>";
        echo "  </table>";
        echo "   </td>";
        echo " </tr>";
        echo " <tr>";
        echo "   <td class="unten" width="600" height="40" align="center" valign="middle">&nbsp;</td>";
        echo "  </tr>";
        echo "</table>";
        echo "</form>";

      1. Hi pete,

        echo "<td width=\"70\" align=\"center\" class=\"on\" onclick=\"sendAnzeige();\">senden</td>";

        Hast du bereits sichergestellt, dass diese Funktion sendAnzeige() auch das macht was sie soll?
        Ich würde probeweise mal einen <input type="submit"> dort einbauen...

        Welche sonstigen Debuggings-Versuche hast sdu schon unternommen?
        Hast du schon mal ein

        ~~~php echo "<pre>";
          print_r($_FILES);
          echo "</pre>";

          
        ausprobiert? Gleiches für $\_POST?  
          
          
        MfG, Dennis.
        
        -- 
        Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)  
          
        That's life - Es gibt im Leben[tm] keine Zurück-Taste. ([Fabian Transchel](http://forum.de.selfhtml.org/archiv/2004/11/t94960/#m575374))
        
        1. Hast du bereits sichergestellt, dass diese Funktion sendAnzeige() auch das macht was sie soll?

          die macht nix anderes als anzeige.submit(); und prüft auf eingabe aller felder

          ~~~php

          echo "<pre>";

          print_r($_FILES);
            echo "</pre>";

            
            
          Array  
          (  
              [datei] => Array  
                  (  
                      [name] => 8297.jpg  
                      [type] => image/pjpeg  
                      [tmp\_name] => c:\DOCUME~1\jnyfeler\LOCALS~1\Temp\php4.tmp  
                      [error] => 0  
                      [size] => 49981  
                  )  
            
          )  
            
          wird zurückgegeben
          
          1. Hi!

            Array
            (
                [datei] => Array
                    (
                        [name] => 8297.jpg
                        [type] => image/pjpeg
                        [tmp_name] => c:\DOCUME~1\jnyfeler\LOCALS~1\Temp\php4.tmp
                        [error] => 0
                        [size] => 49981
                    )

            )

            wird zurückgegeben

            Also war der Upload deiner Datei auch erfolgreich. Nun kannst du - wie Dennis dir bereits sagte - mit move_uploaded_file() die heraufgeladene Datei in dein gewünschtes Verzeichnis verschieben:

              
            // Kopieren der heraufgeladenen Datei in das aktuelle Verzeichnis (./)  
            move_uploaded_file($_FILES['datei']['tmp_name'], './'.$_FILES['datei']['name']);  
            
            

            Grüße,
            Fabian St.

            --
            ---------------------
            fabi@erde ~# whatis spam
            spam: nothing appropriate
            ---------------------
            Selfcode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)