Dateityp prüfen

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

  • Dateityp prüfen

    Hi,

    würde gerne in meinem Uploadscript prüfen lassen, welcher Dateityp übertragen wird. Es darf nur eine Datei sein, die die Endung *.txt hat.

    Habe dies nun in mein Script hinzugefügt.

    PHP-Code:
    $uploadfile_str $path_str '/' basename($_FILES['userfile']['name']);
            if (!
    file_exists($uploadfile_str) && ($thefile_type=="application/msword") && is_uploaded_file($_FILES['userfile']
    [
    'tmp_name']) && move_uploaded_file
    ($_FILES['userfile']['tmp_name'], $uploadfile_str)) {
                
    $html_str .= 'Die Datei wurde gespeichert.';
               
                
    // save file handle in database
                
    $query_str 'INSERT INTO files (path, userID, creditorID, rightID, date, size, type) VALUES
     (\'' 
    $uploadfile_str '\', ' $sess->getSessVar('userID') . ', ' _USERCREDITOR ', \'admindelfile\', NOW(), 
    $_FILES['userfile']['size'] . ', \'' $uploadtype_str '`
    \')'
    ;
                
    $result_obj mysql_query($query_str) or die("Query failed : " mysql_error());
               
                
    // write log entry
                
    $query_str 'INSERT INTO log (timestamp, userID, creditorID, code, text) VALUES (NOW(), ' $sess->getSessVar
    ('userID') . ', ' _USERCREDITOR ', \'upload\', \''$uploadfile_str '\')';
                
    $result_obj mysql_query($query_str) or die("Query failed : " mysql_error());
               
            } else {
                echo 
    'Die Datei wurde nicht angenommen.';
                
                
    // write log entry
                
    $query_str 'INSERT INTO log (timestamp, userID, creditorID, code, text) VALUES (NOW(), ' $sess->getSessVar
    ('userID') . ', ' _USERCREDITOR ', \'upload failed\', \''$uploadfile_str ' - error: ' $_FILES['userfile']['error'] . '\')';
                
    $result_obj mysql_query($query_str) or die("Query failed : " mysql_error());
            } 
    Nur leider kommt immer die Meldung "Die Datei wurde nicht angenommen." Wenn ich das wegnehme $thefile_type=="application/msword") funktioniert der Upload.

    Der "Prüfbefehl" ist doch korrekt oder und auch richtig plazirt?! In diesem Fall habe ich es mit einer Word Datei probiert...

    Vielen Dank schon mal für eure Antworten.

    FRAD
    Zuletzt geändert von FRAD; 31.01.2005, 12:04.

  • #2
    Re: Dateityp prüfen

    zu allererst mal würdest du gerne http://www.php-resource.de/forum/sho...threadid=47906 lesen und umsetzen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hi,

      es geht bestiummt darum, das du soweit nach rechts scrollen musst oder?

      Wenn ich da Absätze rein mache, sieht doch nicht so toll aus!

      Aber gut wie ihr wollt...

      Kommentar


      • #4
        Wenn ich da Absätze rein mache, sieht doch nicht so toll aus!
        ja, so wie du die absätze gemacht hast

        schau doch mal, ob in der variablen auch das steht, was du vermutest ....
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          PHP-Code:
          print_r($_FILES); 
          ist dein Freund

          btw: ich habe immer noch den Scrollbalken, trotz 1280 x 1024

          Kommentar


          • #6
            Original geschrieben von FRAD
            Wenn ich da Absätze rein mache, sieht doch nicht so toll aus!
            Wie wär's denn ersteinmal damit anzufangen strukturierten Code zu schreiben, bevor man sich an ein solches Script wagt??

            Zum eigentlichen Problem:
            Zitat von mina86
            Hey! Why not using strrchr() to get file extension:
            PHP-Code:
            <?php $ext strrchr($_FILES['file']['name'], '.'); ?>
            or to get it without '.' at the begining:
            PHP-Code:
            <?php $ext substr(strrchr($_FILES['file']['name'], '.'), 1); ?>
            If you want to update file without any strang characters you can use:
            PHP-Code:
            <?php
            move_uploaded_file
            (
              
            $_FILES["file"]["tmp_name"], 
              
            $dir preg_replace('/[^a-z0-9_\-\.]/i''_'$_FILES["file"]["name"])
            );
            ?>

            Kommentar


            • #7
              Ich glaub es geht hier um ein MNissverständnis!!! Mein Code ist strukturiert, habe nur hier Zeilenumbrüche gemacht, damit man nicht soweit nach rechts scrollen muss. Dies war das Anliegen von wahsaga

              Mit print_r erhalte ich folgendes:

              PHP-Code:
              Die Datei wurde nicht angenommen.Array ( [userfile] => Array ( [name] =>
               
              image001.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpjoDasM [error] => [size] => 446869 ) ) 
              Kannst du etwas daraus erkennen wo das Problem liegt? Der Dateityp wird richtig erkannt

              Ciao
              Zuletzt geändert von FRAD; 31.01.2005, 12:38.

              Kommentar


              • #8
                Das mit dem unstruktiert war von meiner Seite missverständlich ausgedrückt, bezog sich eher auf die Tatsache, dass im obigem Code ein ' zuviel ist, was bereits aus der PHP-Ansicht hervorgeht (ab der Mitte wird alles in blauer schrift dargestellt, Kommentare inklusive).

                image001.jpg
                Da hast du doch bereits den Namen der Datei. Mit Hilfe des von mir bereits erwähnten Befehls strrchr kannst du nun die Dateiendung bestimmen. Wo liegt also dein Problem??

                Kommentar


                • #9
                  ein

                  preg_match('@\.(gif|png|jpg|jpeg)$@',$bla)

                  würde auch schon reichen....
                  [color=blue]MfG Payne_of_Death[/color]

                  [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                  [color=red]Merke:[/color]
                  [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                  Murphy`s Importanst LAWS
                  Jede Lösung bringt nur neue Probleme
                  Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                  In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                  Kommentar

                  Lädt...
                  X