Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] jpg & gif upload script

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] jpg & gif upload script

    Moin ich möchte gerne Bild Datein (jpg und gif) mit meinem script auf den Webspace hochladen können.

    So sieht der Quellcode aus
    PHP-Code:
         echo '<form method="post" enctype="multipart/form-data"> 
               <input type="file" name="datei"><br>
               <input type="submit" value="Hochladen"> 
              </form>'
    ;
     
     
     if(isset(
    $_POST['submit'])){
        
    $tempname $_FILES['file']['tmp_name'];
        
    $name $FILES['datei']['name'];
        
    $type $FILES['datei']['type'];
        
    $size $FILES['datei']['size'];
        
        if(
    $type != "image/gif" && $type != "image/pjpg"){
            
    $err[] = "Es dürfen nur GIF und JPG Datein hochgeladen werden!";
        }
        if(
    $size 15000){
            
    $err[] = "Die Datei darf maximal 15kb groß sein!";
        }
        if(empty(
    $err)){
            
    copy("$tempname""$name");
            echo 
    'Datei wurde erfolgreich hochgeladen!';
        }else { 
            foreach(
    $err as $error
            echo 
    "$error<br>"
         }   
     } 
    Naja aber leider passiert da nichts wenn ich eine Datei auswähle und auf den Button klicke. Nicht einmal eine Fehlermeldung.


  • #2
    if(isset($_POST['submit'])){ --> ist gar nicht gesetzt
    $tempname = $_FILES['file']['tmp_name']; --> das file feld heisst datei
    $name = $FILES['datei']['name']; --> $_FILES müsstest Du benutzen

    etc.

    lerne erstmal Grundlagen vr allem auch etwas logik

    Kommentar


    • #3
      Einfach mal debuggen

      PHP: print_r - Manual
      PHP: $_FILES - Manual

      und dem Formular mal eine "action" mitgeben
      You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

      Kommentar


      • #4
        btw. benutze move_uploaded_file() und nicht copy()..

        Kommentar


        • #5
          Problem, Titel.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Okay ich gebe zu es war ziemlich dämlich von mir, mit den ganzen Fehlern.
            Lag wohl an den Kopfschmerzen die ich hatte (ich weiß, schlechte Ausrede).
            Ich hab diese nu mehr oder minder behoben. Die Abfragen geht nu, also es kommen Fehler wenn die Datei größe nicht dem entspricht oder der Dateityp flasch ist.
            Allerdings wird die Datei nicht hochgeladen, wenn alles stimmt. Geht das überhaupt in Verbindung mit xampp?
            Ich verstehe auch nicht ganz genau wo man genau den Pfad angeben muss wo die Datei gespeichert werden soll. Ich hab das nämlich auch nur an Hand eines Tutorial geschrieben, wo es eigendlich ganz gut erklärt wurde. Nur das habe ich nicht verstanden.
            Bitte nicht den Kopf abreißen.

            Hier noch einmal der Quellcode

            PHP-Code:
             echo '<form method="post" enctype="multipart/form-data">  
                       <input type="file" name="datei"><br> 
                       <input type="submit" name="submit" value="Hochladen">  
                      </form>'

              
              
             if(isset(
            $_POST['submit'])){ 
                
            $tempname $_FILES['file']['tmp_name']; 
                
            $name $_FILES['datei']['name']; 
                
            $type $_FILES['datei']['type']; 
                
            $size $_FILES['datei']['size']; 
                 
                if(
            $type != "image/gif" && $type != "image/pjpg"){ 
                    
            $err[] = "Es dürfen nur GIF und JPG Datein hochgeladen werden!"
                } 
                if(
            $size 15000){ 
                    
            $err[] = "Die Datei darf maximal 15kb groß sein!"
                } 
                if(empty(
            $err)){ 
                    
            move_uploaded_file("$tempname""$name"); 
                    echo 
            'Datei wurde erfolgreich hochgeladen!'
                }else {  
                    foreach(
            $err as $error)  
                    echo 
            "$error<br>";  
                 }    
             } 

            Kommentar


            • #7
              Statt

              PHP-Code:
              <?php
              $tempname 
              $_FILES['file']['tmp_name']; 
              ?>
              muss doch da

              PHP-Code:
              <?php
              $tempname 
              $_FILES['datei']['tmp_name']; 
              ?>
              stehen, oder nicht?

              Wolf29
              while (!asleep()) sheep++;

              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

              Kommentar


              • #8
                Funktioniert das überhaupt wenn man es über xampp laufen lässt?

                Kommentar


                • #9
                  Zitat von Coke121 Beitrag anzeigen
                  Funktioniert das überhaupt wenn man es über xampp laufen lässt?
                  Natürlich, warum nicht?? Ansonsten wäre doch XAMPP nicht zu gebrauchen.
                  Try to make the most of your life.

                  Kommentar


                  • #10
                    aso, ich verstehe nun halt noch nicht ganz wo/wie man den Dateipfad angibt, wo die Datei hochgeladen wird.

                    Kommentar


                    • #11
                      Zitat von Coke121 Beitrag anzeigen
                      aso, ich verstehe nun halt noch nicht ganz wo/wie man den Dateipfad angibt, wo die Datei hochgeladen wird.
                      Hochgeladen wird sie ins in der PHP-Konfiguration angegebene Temp-Verzeichnis für Uploads.

                      Was du meinst ist aber wohl der Speicherort, an dem sie landet, nachdem der Upload per Script validiert und ausgewertet wurde.
                      Dafür ist in dem Code die Stelle zuständig, an der die Funktion move_uploaded_file aufgerufen wird. Also schau dir deren Parameter im Handbuch an.

                      Kommentar


                      • #12
                        Jo, danke das klappt jetzt wunderbar.
                        Nun will ich es aber so machen das ich nur pdf datein hochladen darf, der aktuelle code
                        PHP-Code:
                        $tempname $_FILES['file']['tmp_name']; 
                            
                        $name $_FILES['file']['name']; 
                            
                        $type $_FILES['file']['type']; 
                            
                        $size $_FILES['file']['size']; 
                             
                           if(
                        $type != "application/pdf"){ 
                                
                        $err[] = "<strong>Es dürfen nur PDF Datein hochgeladen werden!</strong>";  
                           
                            if(
                        $size 500000){ 
                                
                        $err[] = "<strong>Die Datei darf maximal 5mb groß sein!</strong>"
                            } 
                            if(empty(
                        $err)){ 
                                
                        move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
                                echo 
                        "<strong>Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen</strong>";
                            }else {  
                                foreach(
                        $err as $error)  
                                echo 
                        "$error<br>";  
                             }    
                         } } 

                        Doch jetzt kommt immer die Meldung "Es dürfen nur PDF Datein hochgeladen werden!"

                        Was ist denn an der Abfrage falsch?

                        Kommentar


                        • #13
                          Na schau halt mal in $type rein.
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            PHP-Code:
                            array(1) { ["datei"]=> array(5) { ["name"]=> string(7"HO1.pdf" ["type"]=> string(15"application/pdf" ["tmp_name"]=> string(24"C:\xampp\tmp\php541A.tmp" ["error"]=> int(0) ["size"]=> int(450185) } } 
                            PHP-Code:
                            ["type"]=> string(15"application/pdf" 
                            Mhmm...ausgegebn wird ja "application/pdf"....

                            Kommentar


                            • #15
                              $type = $_FILES['file']['type'];
                              aber
                              array(1) { ["datei"]=>
                              was fällt Dir da auf?

                              Kommentar

                              Lädt...
                              X