kostenloser Webspace werbefrei: lima-city


Uploadet nur gifs und keine jpgs

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m**l

    hi,
    diese Script hier soll erlauben, gifs und jpg hochzu laden. Aber eldier erlaubt er nur gifs. Was ist falsch dran:

    $mime = $_FILES["datei"]["type"];
    if($mime == "image/jpeg" || $mime == "image/gif" || $mime == "image/jpg")
    {
    
    // In den Bilderordner verschieben
    move_uploaded_file($_FILES["datei"]["tmp_name"], $bilder_ordner .$_FILES["datei"]["name"]);
    
    // Wo ist die Datei jetzt? -> Pfad ausgeben
    header ("Location: new_pics.php?fertig=1");
    }
    else
    {
        header ("Location: new_pics.php?format=1");
        exit;
    }
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. s******n

    ich bin zwar noch php-anf?nger, aber ich w?rde behaupten, dass in der ersten Zeile der Wurm drin ist.

    frag mich jetzt aber bitte nicht nach dem Warum, das ist m?nnliche Intuition ^^

    gibt es nicht in php eine eigene funktion, um den mime-type eines bildes zu bestimmen?

    wenn ich das skript richtig verstanden habe (hofe ich doch mal stark), ?bergibst du am anfang ein assoziatives array an die Variable "mime". oder was soll das darstellen?
  4. Autor dieses Themas

    m**l

    ja richtig, und dann will ich halt festellen ob es ein gif oder ein jpg ist. aber bei gifs geht es nur bei jpgs nicht
  5. AFAIK ist der mimie type nur der vom Browser ?bermittlete. Er l?sst sich also f?lschen und in Wirklichkeit ganz andere Dateien hochzuladen.

    Um zu ?berpr?fen ob und um welches Bild es sich handelt eignet sich getimagesize besser.
    http://de3.php.net/manual/de/function.getimagesize.php
  6. Autor dieses Themas

    m**l

    [code]
    $array = array(
    1 => "gif",
    2 => "jpg",
    3 => "jpeg",
    4 => "SWF");

    $size = getimagesize($_FILES["datei"]["type"]);

    if($size['2'] == "jpeg" || $size['2'] == "gif" || $size['2'] == "jpg")
    {
    [code]
  7. Autor dieses Themas

    m**l

    $array = array(
    1 => "gif",
    2 => "jpg",
    3 => "jpeg",
    4 => "SWF");
    						
    $size = getimagesize($_FILES["datei"]["type"]);
    
    if($size['2'] == "jpeg" || $size['2'] == "gif" || $size['2'] == "jpg")
    {
  8. c*********c



    moul schrieb:
    $array = array(
    1 => 'gif',
    2 => 'jpg',
    3 => 'jpeg',
    4 => 'SWF');
    						
    $size = getimagesize($_FILES['datei']['type']);
    
    if($size['2'] == 'jpeg' || $size['2'] == 'gif' || $size['2'] == 'jpg')
    {


    Das ist falsch, da $size['2'] eine Zahl enth?lt!

    Mach's so:


    $pfad = "DeinOrdner/" . $_FILES["datei"]["name"];
    
    move_uploaded_file($_FILES["datei"]["tmp_name"], $pfad);
    
    // -----------------------
    $array = array(
    
             1 => "GIF",
    
             2 => "JPG",
    
             3 => "PNG",
    
             4 => "SWF");
    
    
    $size = getimagesize($pfad);
    $bildtyp = $array[$size['2']];
    
    // -----------------------------
    
    if($bildtyp == "JPG" || $bildtyp == "GIF")
    {
    header ("Location: $pfad");
    }
    else
    {
        unlink($pfad);
         
        header ("Location: new_pics.php?format=1");
    
        exit;
    }
  9. Autor dieses Themas

    m**l

    ich habe versuch es so zu machen , aber es klappt immer noch nciht hier mal mein ganzer code:


    PHP:

    <?php 
    // Der Ordner, in den die Bilder hochgeladen werden sollen 
    $bilder_ordner = "bilder/"; 
    
    
    
    // Dateiname leer? 
    
    if($_FILES["datei"]["name"] == "") 
    { 
       header ("Location: new_pics.php?fehler=1"); 
        exit; 
    } 
    
    // Tempor?rer Dateiname leer? 
    if($_FILES["datei"]["tmp_name"] == "")   
    { 
         header ("Location: new_pics.php?fehler2=1"); 
        exit; 
    } 
    
    // Leere Datei? 
    if($_FILES["datei"]["size"] == 0)   
    { 
        header ("Location: new_pics.php?fehler3=1"); 
        exit; 
    } 
    
    // Datei gr??er als 10000 Byte? 
    if($_FILES["datei"]["size"] > 1572864) 
    { 
        header ("Location: new_pics.php?fehler4=1"); 
        exit; 
    } 
    
    
    $filename = $_FILES["datei"]["type"]; // die hochgeladene Datei eben  
    
    if (substr($filename, -4) == '.jpg' OR substr($filename, -5) == '.jpeg' OR substr($filename, -4) == '.gif')  { 
    
    // In den Bilderordner verschieben 
    move_uploaded_file($_FILES["datei"]["tmp_name"], $bilder_ordner .$_FILES["datei"]["name"]); 
    
    // Wo ist die Datei jetzt? -> Pfad ausgeben 
    header ("Location: new_pics.php?fertig=1"); 
    } 
    else 
    { 
        header ("Location: new_pics.php?format=1"); 
        exit; 
    } 
    
    ?>
  10. D?j? vu?


    Hatten wir das nicht schon mal?

    $filename = $_FILES["datei"]["type"];


    $_FILES['datei']['type'] enth?lt nicht den Namen der Datei, sondern eben den MIME-Type ("image/blub").

    Um solche Fehler zu umgehen (und zu beheben), macht es sich immer gut, vor der Ausf?hrung einer Aktion mal testweise mit print_r($_FILES); den gesamen Inhalt dieser Variable anzuzeigen. Da siehst du dann auf einen Blick, welche Text-Strings wo in der Variable stehen.

    Und:
    http://de.php.net/manual/de/features.file-upload.php
    Ist auch ganz interessant ...

    MfG
    alopex

    Beitrag ge?ndert am 23.07.2005 21:26 von alopex
  11. Autor dieses Themas

    m**l

    also ich habe meinen Fehler gefunden. Es war kein Fehler. Der Upload klappt mit IE wunderbar nur mit Opera nicht, wei? echt nciht warum...
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!