zu doof für Bild Upload?!

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

  • zu doof für Bild Upload?!

    Hi,
    also ich weiss ich weiss es gibt duzende Postings hier im Forum zu diesem
    Thema, hab auch viele gefunden nur eben keins das mir wirklich verständlich erklärt wie ich so was selbst scripten kann. Ich will nicht einfach das Script vom Forum rauskopieren sonder dabei was lernen und
    das kann man ja nur dann, wenn man bekanntlich das selbst macht ;-).
    So das Vorab...
    Das was ich machen will.(auf www.php.net funktionieren die erklärung irgendwie nicht mehr für datei_upload...)

    - Formular wo ich ne Bildatei aus meinem lokalen Rechner raussuche kann(hab ich schon)
    PHP-Code:
    <form enctype="multipart/form-data" action="upload.php" method="post">
    <
    input type="hidden" name="MAX_FILE_SIZE" value="80000">
    Send this file: <input name="bildfile" type="file"><br>
    <
    input type="submit" value="Upload">
    </
    form
    - das Bild darf maximal 80kB groß sein und ausschließlich .jpg .jpeg oder .gif sein...
    - und was dazu kommt ich hab halt ein Verzeichnis auf meinem Webspace das "bilder_user" heisst, wenn jetzt natürlich jeder sein Bild uploaded kommt es ja mal hundert pro vor das mal die Namen gleich sind. Deswegen hab ich mir gedacht:
    Bevor das Script die Datei uploadet benennt es den Bildnamen um und zwar in $username_$userid dann würde der Bildname einzigartig sein und auch leichter zu identifizieren...
    (ich hab eine Tabelle "userdata" aus der ich den $username & $userid hole)

    naja ich hab halt in der Hinsich echt keinen Plan wie ich das machen soll und wie das mit der Kombination von upload Post und PHP funktioniert :-(
    und da die online doku ned geht fehlt mir natürlich ein wichtiger Teil...

    Danke schon mal für Euer Erbarmen ;-).
    mfg Tom

  • #2
    du musst auf jeden fall im skript noch überprüfen ob die dati nicht zu groß ist

    entweder per $_FILES['bildfile']['size'] oder filesize($_FILES['bildfile']['tmp_name'])

    das umbenennen geht mit rename
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      mhhh ok wert mich da mal durch kämpfen...:-(

      Kommentar


      • #4
        also irgendwie komm ich schon bei der Fehlerüberprüfung ned weiter :-(:
        hier der Code aus dem Formularuploadform.php)
        PHP-Code:
        <html>
        <head>
            <title>Uploadform</title>
        </head>

        <body>
        <?php

        $target 
        "upload.php";

        ?>

        <form enctype="multipart/form-data" action="<?echo$target;?>" method="post">
        <input type="hidden" name="MAX_FILE_SIZE" value="80000">
        Send this file: <input name="file" type="file"><br>
        <input type="submit" value="Upload">
        </form>

        </body>
        </html>
        aus der Überprüfungupload.php)
        PHP-Code:
        <?php
        $ziel 
        "bilder_user"//upload Ordner
        $datei_max "80000"//maximal Datei größe in Byte
        $datei_endung "image/jpeg"//erlaubte Bild Typen
        $ok "1"//wenn alles ok ist

        IF(!$ok){
        //Ausgabe der Fehlermeldung
        echo "Folgende Fehler (ist) sind aufgetreten:<br>
              
        $error_size";
        }

        IF(
        $file_size $datei_max){

        $ok "";
        $error_size "Das ausgewählte Bild($file_name) ist zu groß.Maximal 80kb erlaubt!<br>
                       Bitte komprmieren Sie ihr Bild oder verkleinern Sie es etwas damit es der<br>
                       Dateigröße von unter 80kb entspricht."
        ;

        }

        ?>
        kann mir da jemand helfen?
        Er müsste ja eigentlich ne Fehlermeldung ausgeben wenn ich ne Datei von über 80kb uploaden will. Tut er aber ned :-(...

        Kommentar


        • #5
          IF($file_size > $datei_max){ ???

          Du solltest das $_FILES Array benutzen
          also $_FILES['file']['size']
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            sorry aber wie soll ich das jetzt in meinem "Script" anwenden?!
            nochmal hab echt keine Ahnung von diesem Datei-Funktionen...

            Kommentar


            • #7
              PHP-Code:
              echo 'Dateigröße: '.$_FILES['file']['size']; 
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                kommt das gleiche raus wie wenn ich echo "$file_size"; mache
                und zwar immer "0"!?
                wenn ich echo "$file_name"; gibt er den richtigen Namen aus...
                ps: Ich weiss nurnicht wie ich die Überprüfung machen soll...:-(
                sorry hab Heute fett Heuschnupfen...bidde hab Nachsicht ;-).

                Kommentar


                • #9
                  PHP-Code:
                  echo '$_FILES-Array:<br />';
                  print_r($_FILES['file']);
                  echo 
                  '<hr />Dateigröße mit filesize: '.filesize($_FILES['file']['tmp_name']); 
                  ausgabe?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    mhhh kommt folgende Fehlermeldung wenn ich deinen code einfüge:
                    "$_FILES-Array:
                    Array ( [name] => boarder_01.JPG [type] => [tmp_name] => [error] => 2 [size] => 0 )
                    Warning: filesize() [function.filesize]: Unable to access in /home/www/htdocs/thomas-reichelt.net/schrott_or_not/bilder_user/upload.php on line 15

                    --------------------------------------------------------------------------------
                    Dateigröße mit filesize: "

                    ps:Mal ne Grundlegende Frage:
                    wenn ich die Datei auswähle und auf "upload" klicke läd er die Datei ja temporär irgendwo auf dem Server ab oder?(nur zum verständnis) danach muss ich ihm sagen wohin er es speichern soll(bzw kopieren soll oder) ansonsten löscht er sie gleich wieder oder?

                    Kommentar


                    • #11
                      grundlegende antwort: ja

                      der fehlercode besagt, dass die datei die im formular angegebene maximalgröße überschreitet undd aher von deinem browser gar nich erst hochgeladen wurde...

                      nimm das hidden-field
                      Code:
                      <input type="hidden" name="MAX_FILE_SIZE" value="80000">
                      aus dem formular raus und überprüf die größe mit filesize, bzw. $_FILES['file']['size'], is bessererererer


                      btw. 80KB != 80000 Byte
                      EDIT:
                      /s/Fehlercode/wert 2 im Feld error des $_FILES-Array
                      Zuletzt geändert von mrhappiness; 24.03.2003, 13:19.
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Original geschrieben von tomtherock
                        ps:Mal ne Grundlegende Frage:
                        wenn ich die Datei auswähle und auf "upload" klicke läd er die Datei ja temporär irgendwo auf dem Server ab oder?(nur zum verständnis) danach muss ich ihm sagen wohin er es speichern soll(bzw kopieren soll oder) ansonsten löscht er sie gleich wieder oder?
                        so ist es. wenn das aktuelle script "zu ende" gelaufen ist, wird der temp ordner wieder aufgeräumt. meine vermutung ist, dass du dein temp verzeichnis nicht richtig eingestellt hast. localhost?
                        h.a.n.d.
                        Schmalle

                        http://impressed.by
                        http://blog.schmalenberger.it



                        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                        ... nur ohne :-)

                        Kommentar


                        • #13
                          hey cool jetzt funzt das wenigstens schon mal jetzt muss ich mir nur überlegen wie ich das mit der Überprüfung hinbekomm *g*.
                          Danke vorerst!
                          Gruß Tom

                          $_FILES-Array:
                          Array ( [name] => boarder_01.JPG [type] => image/pjpeg [tmp_name] => /home/www/htdocs/thomas-reichelt.net/tmp/php8iYxFI [error] => 0 [size] => 746809 )
                          --------------------------------------------------------------------------------
                          Dateigröße mit filesize: 746809

                          Kommentar


                          • #14
                            was für ne überprüfung denn?

                            die dateigröße hast du doch schon da stehen, was willst du denn noch überprüfen?
                            OffTopic:
                            [eingebildet]
                            gott, bin ich guuut
                            [/eingebildet]
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              naja also er soll das script ja abrechen...
                              mir fehlt ja noch der Teil in dem er das Bild dann vom tmp Ordner in meinen erstellten Ordner kopiert (-> bilder_user) allerdings soll er die datei ja nicht kopieren wenn das Filesizelimit erreicht ist.(80kb)
                              deswegen:
                              PHP-Code:
                              <?php
                              $ziel 
                              "bilder_user"//upload Ordner
                              $datei_max "80000"//maximal Datei größe in Byte
                              $datei_endung "image/jpeg"//erlaubte Bild Typen
                              $error ""//wenn alles ok ist

                              IF($error){
                              //Ausgabe der Fehlermeldung
                              echo "Folgende Fehler (ist) sind aufgetreten:<br>
                                    
                              $error_size<br>";
                              }


                              //echo '$_FILES-Array:<br />';
                              //print_r($_FILES['file']);
                              //echo '<hr />Dateigröße mit filesize: '.filesize($_FILES['file']['tmp_name']);

                              $datei_size $_FILES['file']['size'];
                              echo 
                              "Dateigröße: $datei_size<br>";
                              echo 
                              "Datei_max:  $datei_max";

                              IF(
                              $datei_max $datei_size){

                              $error "1";
                              $error_size "Das ausgewählte Bild($file_name) ist zu groß.Maximal 80kb erlaubt!<br>
                                             Bitte komprmieren Sie ihr Bild oder verkleinern Sie es etwas damit es der<br>
                                             Dateigröße von unter 80kb entspricht."
                              ;

                              }

                              ?>
                              ps: weiss noch garnicht wie ich die Datei vom tmp Ordner in meinen Ordner kopieren kann *g*...das is das nächste "Problem".

                              Kommentar

                              Lädt...
                              X