Fileupload

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

  • Fileupload

    Hallo Leute,

    ich habe nur eine klitzekleine Frage,
    ich würde gerne, dem User die Möglichkeit geben ein File
    ( Jepg-Bild ) auf meinen Server zu laden.

    Dieses wird benötigt, um den User die Möglichkeit zu geben
    ein Logo in eine Rechnung ein zu fügen.

    Mein Abfrage :
    PHP-Code:
    <form method=post action="manage.php" enctype="multipart/form-data">
    <
    table>
    <
    tr>
          <
    td>
           <
    input type="file" name="file">
          </
    td>
         </
    tr>
    </
    table>
    <
    input type=submit value=weiter>
    </
    form
    und die Speicherung :
    PHP-Code:
    <?php
    $kopf
    =$_POST['impressum'];
    $mitte=$_POST['text'];
    $fuss=$_POST['bank'];
    $files=$_POST['file'];
      
    move_uploaded_file($_FILES['file']['tmp_name'], "./".$_FILES['file']['logo']);  
    ?>
    Aber irgendwie klappt das nicht, mein Ziehl ist es, dass der User eine jepg Datei aussucht und diese automatisch als logo.jepg auf meinem Server gespeichert wird.

    Gruss und Danke Ela

  • #2
    schonmal mit $_FILES gearbeitet ?
    Kissolino.com

    Kommentar


    • #3
      Hier, damit kannst du bestimmt was anfangen...
      http://www.php.net/manual/de/features.file-upload.php
      mfg
      Günni


      Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
      Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
      Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
      City-Tiger - Online durch die Straßen tigern...

      Kommentar


      • #4
        Neeee und auch noch nicht mit Files allgemein,
        damit fange ich erst an und dieses Projekt hat
        halt vieles um es zu lernen.

        Leider habe ich unter -> $_FILES <- auch
        nichts im manuell gefunden

        Gruss Ela

        Kommentar


        • #5
          du sollst auch nicht im manuell gucken....

          sondern im Manual... und da findest du das: http://de.php.net/reserved.variables...ariables.files
          Die Musikreview Seite

          hi, i'm a signature virus. copy me into your signature to help me spread.

          Kommentar


          • #6
            O.K. die Rechtsschreibung **SCHÄHM** oder **SCHÄM ** ?

            Nur, durchblicke tue ich nicht wirklich dabei :

            Variablen für HTTP Dateiuploads: $_FILES
            Anmerkung: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_POST_FILES.

            Ein assoziatives Array mit Elementen, die in das aktuelle Skript mit der HTTP-POST-Methode hochgeladen wurden. Es ist automatisch global in allen Gültigkeitsbereichen.

            Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_FILES; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_POST_FILES notwendig ist.

            $HTTP_POST_FILES enthält dieselben Informationen, ist aber nicht autoglobal.

            Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_FILES und $HTTP_POST_FILES Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.
            und schlauer werde ich auch nicht wirklich, denn da ist ja nicht mal ein Syntax drin

            Gruss Ela

            Kommentar


            • #7
              Original geschrieben von manuelakersten
              Nur, durchblicke tue ich nicht wirklich dabei :
              nimm mal günnis link und lies gaaaaanz langsam ... dann geht das blonde auch weg
              Kissolino.com

              Kommentar


              • #8
                woher weist Du dass ich Blond bin ?

                Nun habe ich gaaannnzzz langsam gelesen
                und ausser den Begriffen Global und Variabel habe ich
                nicht mehr verstanden !

                Gruss Ela

                Kommentar


                • #9
                  Hast du die normale Grundlagen von PHP schon???
                  mfg
                  Günni


                  Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                  Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                  Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                  City-Tiger - Online durch die Straßen tigern...

                  Kommentar


                  • #10
                    Original geschrieben von manuelakersten
                    woher weist Du dass ich Blond bin ?

                    Nun habe ich gaaannnzzz langsam gelesen
                    und ausser den Begriffen Global und Variabel habe ich
                    nicht mehr verstanden !

                    Gruss Ela
                    Also, du bist wirklich blond

                    Hast du auch die Bsp. gelesen ? z.B.
                    PHP-Code:
                    <?php 
                    // In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
                    // In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von
                    // move_uploaded_file()

                    $uploaddir '/var/www/uploads/';

                    print 
                    "<pre>";
                    if (
                    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir $_FILES['userfile']['name'])) {
                       print 
                    "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
                       
                    print_r($_FILES);
                    } else {
                       print 
                    "Possible file upload attack!  Here's some debugging info:\n";
                       
                    print_r($_FILES);
                    }

                    ?>
                    userfile ist der name des Elements in deiner HTML-Formular.

                    Kommentar


                    • #11
                      o.k. danke aber dieses Beispiel oder ein änliches kann ich
                      immer noch nicht finden - aber egal !

                      nun mein Script würde nun so aussehen :
                      Eingabe ( index.php ):
                      PHP-Code:
                      <form method=post action="manage.php" enctype="multipart/form-data">
                       <
                      table>
                        <
                      tr
                         <
                      td>Logo:</td>
                        </
                      tr
                        
                      <tr>
                         <
                      td>
                          <
                      input type="file" name="files">
                         </
                      td>
                        </
                      tr>
                       </
                      table>
                       <
                      input type=submit value=weiter>
                      </
                      form
                      Schreiben ( manage.php ):
                      PHP-Code:
                      $files=$_POST['file'];
                      $uploaddir '/home/www/web46/html/pdfrechnung';
                      if (
                      move_uploaded_file($_FILES['file']['tmp_name'], $uploaddir $_FILES['file']['name']))
                        {
                        print 
                      "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
                        
                      print_r($_FILES);
                        } else {
                        print 
                      "Possible file upload attack!  Here's some debugging info:\n";
                        
                      print_r($_FILES);
                        } 
                      und da bekomme ich folgende Fehlermeldung :
                      Possible file upload attack! Here's some debugging info: Array ( [files] => Array ( [name] => blue.gif [type] => image/gif [tmp_name] => /home/www/web177/phptmp/php5ZFHvp [error] => 0 [size] => 178 ) )
                      Was habe ich falsch gemacht ?
                      Den CHMOD habe ich auf 0777 gesetzt !

                      Gruss und Danke Ela

                      Kommentar


                      • #12
                        das Beispiel findest du, wenn du den Link von Günni klickst und etwas
                        scrollst. (Bsp. 18-1 und 18-2)

                        lies bitte meeeeehrmals durch in ruuuuuuhe. Deutlicher kanns man nicht
                        erklären, es sei denn man passt für dich die Parameter an, aber das machen
                        wir nicht, auch wenn du eine Frau bist

                        Kommentar


                        • #13
                          Also ich habe mir das nun Zeile für Zeile duchgelsen und habe mein Script folgendermassen abgeändert.
                          PHP-Code:
                          $file=$_POST['files'];
                            if (
                          move_uploaded_file($_FILES['files']['tmp_name'], "/home/www/web46/html/pdfrechnung/logo.jpeg"))
                            { print 
                          "Datei wurde Hochgeladen";
                            } else {
                            print 
                          "Die Datei ".$file." wurde nicht Hochgeladen - hier die Info's :\n";
                            
                          print_r($_FILES);
                            } 
                          Nun habe ich es so verstanden, dass das File[files] eingelsen und in einem TEMP-Verzeichnis auf dem Server gespeichert wird und dann als Datei[logo.jpeg] in das Verzeichnis[/home/www/web46/html/pdfrechnung/] verschoben wird, voraussetzung ist, dass die eingelesene Datei auch eine JPEG-Datei ist.

                          Nun bekomme ich folgende Fehlermeldung :
                          Die Datei wurde nicht Hochgeladen - hier die Info's : Array ( [files] => Array ( [name] => eintragen.jpeg [type] => image/pjpeg [tmp_name] => /home/www/web4/phptmp/phpQfSyDD [error] => 0 [size] => 4222 ) )
                          Und diese verstehe ich wie folgt:

                          Es wird die Datei[eintragen.jpeg] als [image/pjpeg] mit dem Dateinamen[phpQfSyDD] im TEMP-Verzeichnis[/home/www/web4/phptmp/] des Servers mit einer Grösse von [4222 KB] abgelgt. Lt. Servermeldung jedoch ohne einen Fehler[error =>0] aber warum bekomme ich nun diese Fehlermeldung und warum wird in dieser Fehlermeldung nicht der Inhalt der Variabel $file mit ausgegeben.

                          Klar möchte ich nicht, das mir fertige Scripte vorgesetzt werden, denn nur so lernt man und nun habe ich gelernt, was die einzelnen Array bedeuten und das ich mit diesen auch den Fileupload steuern kann ( wie z.B. grösse und Type der Datei festlegen ) aber warum funzt das einfache Script nicht ?

                          Gruss und Danke Ela

                          Kommentar


                          • #14
                            für mich ist es auch Neuland, aber es klappte auf Anhieb
                            Ich habe schon txt, php, doc, xls, pdf, zip und alle gängigen
                            Bildformatdateien ohne Probleme hochgeladen.

                            IMHO sind 3 Sachen dabei zubeachten:
                            - Zugriffrecht
                            - MAX_FILE_SIZE
                            - memory_limit
                            überprüfe mal

                            BTW: was willst du mit $file=$_POST['files']? Wenn du Dateinamen haben willst, bekommst du über $_FILE

                            Kommentar


                            • #15
                              mmhh merkwürdig !

                              Mit $file=$_POST['files'] hole ich mir die Variabel $file aus einem input einer anderen Seite in der ich über ein Formular in diese Variabel geschrieben habe.

                              Gruss und Danke Ela

                              Kommentar

                              Lädt...
                              X