Anonym: PHP Upload

Wow!!!! Cooles neues Design vom Forum erstmal :)

Ich hätte eine Frage zu PHP! Versuche gerade ein File Upload via PHP.

  
<?php  
if ($_POST[upload]==1)  
{  
move_uploaded_file($_FILES['thefile']['tmp_name'],"data/.jpg");  
}  
  
?>  
  
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']); ?>"">  
  <label for="textfield">Test</label>  
  <input type="file" name="thefile" id="thefile" />  
  <input type="hidden" name="upload" value="1" />  
  <input type="submit" value="Upload" />  
  </form>  

Er lädt was hoch (merkt man) aber nicht in den Ordner data .....Und auch sonst nirgendwo...
Kann mir jmd. helfen? Lese schon seit stunden Tuts..

  1. Hallo,

    <?php

    if ($_POST[upload]==1)
    {
    move_uploaded_file($_FILES['thefile']['tmp_name'],"data/.jpg");
    }

    ?>

      
    dieser Block sollte wegen der Verwendung einer vermutlich undefinierten benannten Konstanten upload anstatt der Stringkonstanten 'upload' eine Notice schmeißen. Außerdem: Liefert dein Upload-Formular wirklich einen Parameter 'upload' mit dem Wert 1 mit? Wozu?  
    Und möchtest du wirklich jede hochgeladene Datei unter demselben Namen ".jpg" speichern, und damit die vorhergehende Upload-Datei überschreiben?  
      
    
    > <form id="form1" name="form1" method="post" enctype="multipart/form-data" action="action="<?php echo htmlspecialchars ($\_SERVER['PHP\_SELF']); ?>"">  
    >   <label for="textfield">Test</label>  
    >   <input type="file" name="thefile" id="thefile" />  
    >   <input type="hidden" name="upload" value="1" />  
      
    Ah, da isses ja. Trotzdem: Wozu?  
      
    
    > Er lädt was hoch  
      
    Wer??  
      
    
    > aber nicht in den Ordner data .....Und auch sonst nirgendwo...  
      
    Hast du bedacht, dass Unix-basierte Systeme eine Datei, deren Name mit einem Punkt beginnt, als "hidden" betrachtet?  
      
    Ciao,  
     Martin  
    
    -- 
    Wer schläft, sündigt nicht.  
    Wer vorher sündigt, schläft besser.  
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    
  2. <?php
    if ($_POST[upload]==1)
    {
    move_uploaded_file($_FILES['thefile']['tmp_name'],"data/.jpg");
    }

    Das bedeutet: kopiere die temporäre Datei in

    • das Verzeichnis "data" relativ zum aktuellen Verzeichnis
    • in die Datei ".jpg"

    Weißt Du, in welchem Verzeichnis du aktuell bist? Gibt es dort das Unterverzeichnis "data".
    Schau mal, was [code lang=php]var_dump($_SERVER["DOCUMENT_ROOT"]

    Und wie Martin schon sagt solltest Du dem Bild einen Namen geben.  
      
    Cheers,  
    Baba
    
  3. <form id="form1" name="form1" method="post" enctype="multipart/form-data" action="action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']); ?>"">

    Diese Zeile dürfte zu etwas ähnlichen wie folgendem evaluieren:

    <form id="form1" name="form1" method="post" enctype="multipart/form-data" action="action="index.php"">

    Nach dem der Parser das Rauschen entfern hat, sieht dein Tag ungfähr so aus:

    <form id="form1" name="form1" method="post" enctype="multipart/form-data" action="action=">

    Vermutlich ein Flüchtigkeitsfehler..

  4. if ($_POST[upload]==1)
    {
    move_uploaded_file($_FILES['thefile']['tmp_name'],"data/.jpg");
    }

      
    Guck dir mal das $\_FILES-Array genauer an, z.B. ob ein Fehler beim Hochladen entstanden ist, etc. Allgemein solltest du die hoch geladene Datei besser Überprüfen. Aktuell könnte man, wenn man wollte jeden Rotz von Dateien auf deinen Server schieben.  
      
    MfG  
    bubble