php Uploadscript

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

  • php Uploadscript

    Hi Leute!
    Vorerst mal: Ich habe von php keine Ahnung (nur HTML), habe diesen Script nur kopiert und bisschen veraendert^^.
    Ich habe hier einen Uploadscript, aber er funktinoiert aus irgend einem Grund nicht.
    Wenn ich eine Datei angebe, dann auf "Hochladen" klicke, dann arbeitet zwar mein Browser, aber die Datei ist danach trotzdem nicht oben :/
    (Mein server unterstuetzt natuerlich php)

    (Und wie kann ich auch eine Fortschrittsanzeige einblenden lassen?)

    Was kann da falsch sein? Kann mir wer helfen? Danke^^

    PHP-Code:
    <?php 
    ini_set 
    ('error_reporting'E_ALL); 
    $pfad 'upload/';  // Hier den Ordner relativ zum Uploadscrip, in die die Dateien hochgeladen werden angeben. 
    $dateiupload_erfolgreich false


    function 
    CheckFilename($dateiname,$pfad
        { 
        global 
    $fehler$fehler = array(); 
        if(!
    in_array(strtolower(substr($dateiname,-4)),array('.jpg','.jpeg','.png','.gif','.zip','.rar','.bmp','.exe','.txt','.doc','.mp3','.wma','.wav','.html','.htm','.mpg','.avi','.pdf','.wmv','.xls','.swf','.fla','.ppt','.mov'))) array_push($fehler'Falsches Dateiformat! Erlaubte Dateiformate: .jpg, .jpeg, .png, .gif, .zip, .rar, .bmp, .exe, .txt, .doc, .mp3, .wma, .wav, .html, .htm, .mpg, .avi, .pdf, .wmv, .xls, .swf, .fla, .ppt, .mov'); // In das array erlaubte Dateiformate eintragen und gegebenenfals die Fehlermeldung anpassen. Bitte diese Zeile aus Sicherheitsgründen auf gar keinen Fall löschen! 
        
    return (sizeof($fehler)) ? false $dateiname



    function 
    CheckFile($dateiname_temp,$dateifehler,$dateigroesse
        { 
        global 
    $fehler$fehler = array(); 
             switch (
    $dateifehler) { 
        case 
    '1'$dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break; 
        case 
    '2'$dateifehler_erklaerung 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break; 
        case 
    '3'$dateifehler_erklaerung 'Die Datei wurde nur teilweise hochgeladen.'; break; 
        case 
    '4'$dateifehler_erklaerung 'Es wurde keine Datei hochgeladen.'; break; 
        } 
        if(
    $dateifehlerarray_push($fehler$dateifehler_erklaerung); 
        if (
    $dateigroesse 1array_push($fehler'Sie haben versucht keine oder eine lehre Datei hochzuladen.'); 
        return (
    sizeof($fehler)) ? false $dateiname_temp



    if(!empty(
    $_POST['Send'])) 

        if (
    $dateiname_temp CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size'])) 
        { 
            if (
    $dateiname CheckFilename($_FILES['Datei']['name'],$pfad)) 
            { 
                
    move_uploaded_file($dateiname_temp$pfad.$dateiname); 
                if (
    filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!'); 
                
    $dateiupload_erfolgreich true
            } 
            else 
    $fehlermeldungen_ausgeben true
        } 
        else 
    $fehlermeldungen_ausgeben true





    ?> 
    <html> 
    <head> 
    <title>Datei-Upload</title> 
    </head> 
    <body> 
    <?php 
    if ($dateiupload_erfolgreich

    ?>Ihre Datei (&quot;<?php echo $dateiname?>&quot;) wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php 

    elseif (!empty(
    $fehler)) 

        
    ?> 
        <br>Es sind folgende Fehler aufgetreten:<br> 
        <?php 
        
    foreach ($fehler as $fehlermeldung) { 
        echo 
    $fehlermeldung.'<br>'
        } 
    ?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php 

    ?>  
    <form action="upload.php" enctype="multipart/form-data" method="post">  
        <input type="file" size="65" name="datei">  
        <input type="submit" value="Hochladen">  
    </form>   
    </body> 
    </html>

  • #2
    Guck mal in dein temp-Verzeichnis, wenn da die Datei drin ist, wird sie vermutlich nicht richtig kopiert.

    Kommentar


    • #3
      Ehm...also in meinem Tempordner (C:/Temp) sind nur so 2 Dateien drin, sonst nix. (Nicht die Datei die ich hochladen wollte)
      (C:/WINDOWS/Temp!?)
      Aber auch wenn sie drin wär..was könnte man tun?
      (www.cyberwusl.de/upload.php das is die hochgeladene php-datei)

      Viele Grüße
      Zuletzt geändert von Alligator Jack; 07.11.2006, 03:14.

      Kommentar


      • #4
        weder existiert $_POST['Send'], noch ein feld mit dem namen "Datei".
        1. button benennen,
        2. großschreibung beachten.

        Kommentar


        • #5
          Hm...also ich hab ja gsagt dass ich von php keine Ahnung hab^^..koenntest du den code bitte so veraendern dasses stimmt?

          Danke!

          Alligator Jack

          Kommentar


          • #6
            koenntest du den code bitte so veraendern dasses stimmt?
            und ab geht's nach Projekthilfe...
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Ehm...also in meinem Tempordner (C:/Temp) sind nur so 2 Dateien drin, sonst nix. (Nicht die Datei die ich hochladen wollte)
              (C:/WINDOWS/Temp!?)
              Was du natürlich nach der Laufzeit des Scriptes geprüft hast. Sobald das Script durchgelaufen ist werden die Temp Daten gelöscht. Darum muss man die auch zur Laufzeit noch rausverschieben sonst sind die weg.
              Und wie bereits geschrieben hast du in deinem Form keinen Button Namens Send sondern nur gar keinen. Du musst dem Submit Button via name="Send" einen Namen verpassen auf den du nachher PHP seitig prüfst.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                1. formatier deinen code
                2.
                Vorerst mal: Ich habe von php keine Ahnung (nur HTML), habe diesen Script nur kopiert und bisschen veraendert^^.
                Ich habe hier einen Uploadscript, aber er funktinoiert aus irgend einem Grund nicht.
                dann lern mal php.. oder bezahl jemanden ders dir gescheit einrichtet
                PHP Forum
                Sessions in PHP
                Loginsystem mit PHP erstellen

                Kommentar


                • #9
                  @Hirnhamster:
                  Ist ja zu bewundern, welche Freundlichkeit so manche User hier an den Tag legen.
                  Ich habe aber ehrlich gesagt keine Zeit php zu lernen, ich hab anderes zu tun.
                  Es geht mir ja nur um einen Uploadscript, sonst brauch ich es ja (zunächst nicht).
                  Wenn du mir nicht helfen willst brauchst du doch nicht zu posten.. oder bist du etwa einer von denen die ihren Counter pushen wollen omg

                  @die beiden Herren drüber:
                  Danke, mein Code ist jetzt überarbeitet.. mein Send-Button hatte ja wie von Penizillin gesagt keinen Namen.. aber es geht immer noch nicht.. fehler in Zeile 32 zeigt's an.. naja, ich weiss auch nicht was ich noch machen kann :s

                  Das ist der Momentane Code
                  (www.cyberwusl.de/upload.php)

                  EDIT:
                  Code entfernt, da schon wieder nicht umgebrochen.
                  wahsaga

                  Zuletzt geändert von wahsaga; 08.11.2006, 09:49.

                  Kommentar


                  • #10
                    Original geschrieben von Alligator Jack
                    Ich habe aber ehrlich gesagt keine Zeit php zu lernen, ich hab anderes zu tun.
                    Und andere Leute haben anderes zu tun, als Schnorrern ihre Scripte fertig zu schreiben oder Fehler rauszubauen.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      ein mögliches Hindernis: Rechte für den Ordner upload
                      wo soll die Seite hingeladen werden? der ordner braucht rechte (vergibt der provider '777')

                      Kommentar


                      • #12
                        @wahsaga
                        Mg... jetz bezeichne mich doch nicht gleich als Schnorrer.. ich habe nunmal auch andres zu tun.. und gleich die ganze Sprache zu lernen nur weil ich einen Uploadscript brauche.. ich bin hier in USA als Austauschschüler.. ich kann mir das nicht erlauben ewig vorm Computer zu sitzen und php zu lernen, es ist nunmal so, auch wenn ich es gerne können würde.
                        Ich mein...wenn hier profis rumwandern, dann kann mir -denke ich- doch da vielleicht auch jemand helfen, dem mein Dank alleine dann genug ist.
                        Es ist ja nur eine Bitte...
                        Und wegen dem Code.. sorry, ich hab nicht gewusst dass ich den zurechtschnipsln muss.. hab mich schon gewundert dass das hier im forum zugelassen wird dass man ewigst lange codes hat ohne einen auto-zeileinumbruch.

                        @Justi:
                        Nein, ich habe dem Ordner alle Rechte gegeben die er braucht.
                        Ich habe den Fehler jetzt herraussen!
                        Unten beim Namen vom Input steht "datei".. im array heissts aber immer "Datei" mit großem "D"... das war der Fehler, jetzt funktionierts, danke an alle die mir geholfen haben!
                        (PS: das mit den zugriffsrechten war anfangs mein prob.. hab ich aber dann selber noch rausgefunden^^)

                        Jetz hab ich nur noch ein prob.. ich habe einen Code für einen Fortschrittbalken.. kann man den (leicht..!?) mit dem Uploadscript zusammenfügen? Oder ist das eher umständlich weil...-ich kanns nicht.

                        Mit freundlichen Grüßen und danke nochmal,

                        Alligator Jack

                        Kommentar


                        • #13
                          Original geschrieben von Alligator Jack
                          Jetz hab ich nur noch ein prob.. ich habe einen Code für einen Fortschrittbalken.. kann man den (leicht..!?) mit dem Uploadscript zusammenfügen?
                          Vor PHP 5.2 (IIRC) gar nicht.

                          Dein Script startet erst dann, wenn der Upload der Datei ins Tempverzeichnis abgeschlossen ist - und vorher hast du keinen Zugriff auf die Datei, kennst nicht mal den temporären Namen, kannst also auch ihre aktuelle Größe nicht ermitteln.
                          PHP 5.2. bietet dazu "file upload hooks", mit denen man das schon zwischendurch checken kann.


                          M.E. wären hier die Browserhersteller gefragt, eine solche Anzeige zu implementieren - da ist es am einfachsten und sinnvollsten.
                          Der Browser kennt die Gesamtdatenmenge, die zu übertragen ist, ganz genau, und weiß auch, wie viel er schon erfolgreich an den Server übermittelt hat.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar

                          Lädt...
                          X