Upload file size prüfen

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

  • Upload file size prüfen

    Hallo zusammen,
    ich habe im Netz dieses Bild Upload und Resize Skript gefunden. Nun möchte ich noch eine Prüfung einbauen,
    die schaut ob die maximale Dateigroesse überschritten wurde, wenn ja: Fehlermeldung und abbrechen ,
    wenn nein übertragen. Wo baue ich diese Prüfung (und weitere) im Skript ein?

    die Prüfung müsste ja in etwa so aussehen:
    PHP-Code:
    if ($userfile_size >= $maxsize)
    {
    echo 
    'Das Foto ist zu gross. Es darf höchstens 300 Kb betragen.<br>
    <br><a href="eigene.php">zur&uuml;ck</a>'
    ;

    Hier das Skript das wunderbar funktioniert:

    PHP-Code:
    <?php

    if(isset($_POST['Submit']))

    {
        
    $size 150// the thumbnail height

        
    $filedir 'images/'// the directory for the original image
        
    $thumbdir 'images/'// the directory for the thumbnail image
        
    $prefix 'small_'// the prefix to be added to the original name

        
    $maxfile '300000';
        
    $mode '0666';
        
        
    $userfile_name $_FILES['image']['name'];
        
    $userfile_tmp $_FILES['image']['tmp_name'];
        
    $userfile_size $_FILES['image']['size'];
        
    $userfile_type $_FILES['image']['type'];
        
        
        
        if (isset(
    $_FILES['image']['name'])) 
        {
            
    #Produziere den Pfad und Namen zu den Bildern
            
    $prod_img $filedir.$userfile_name;
            
    $prod_img_thumb $thumbdir.$prefix.$userfile_name;
            
            
    #Bilder hochladen und Rechte ändern
            
    move_uploaded_file($userfile_tmp$prod_img);
            
    chmod ($prod_imgoctdec($mode));
            
            
    $sizes getimagesize($prod_img);

            
    $aspect_ratio $sizes[1]/$sizes[0]; 

            if (
    $sizes[1] <= $size)
            {
                
    $new_width $sizes[0];
                
    $new_height $sizes[1];
            }else{
                
    $new_height $size;
                
    $new_width abs($new_height/$aspect_ratio);
            }

            
    $destimg=ImageCreateTrueColor($new_width,$new_height
    or die(
    'Probleme bei Erstellung des Bildes');
            
            
    $srcimg=ImageCreateFromJPEG($prod_img) or die('Probleme bei Zugriff auf das Quellbild');
            
            
    ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,
    ImageSX($srcimg),ImageSY($srcimg)) or die('Probleme bei Groessenanpassung');
            
            
    ImageJPEG($destimg,$prod_img_thumb,90) or die('Probleme beim speichern');
            
            
    imagedestroy($destimg);
        }

        
        
    /*echo $userfile_name.'<br>';
        echo $userfile_tmp.'<br>';
        echo $userfile_size.'<br>';
        echo $userfile_type.'<br>';
        */
            
        
    echo '
        <a href="'
    .$prod_img.'">
        <img src="'
    .$prod_img_thumb.'" width="'.$new_width.'" heigt="'.$new_height.'"></a>';
        echo 
    '<br><br><a href="eigene.php">zur&uuml;ck</a>';
    }

    else
    {
        echo 
    '
        <form method="POST" action="'
    .$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
        <input type="file" name="image"><p>
        <input type="Submit" name="Submit" value="Submit">
        </form>'
    ;
    }

    ?>
    Zuletzt geändert von firebirder; 29.03.2005, 12:46.
    http://www.nanc-angel.de

  • #2
    warum versuchst Du es nicht einfach mal ??
    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

    Kommentar


    • #3
      ich würde es da einbauen ...

      PHP-Code:
      #Bilder hochladen und Rechte ändern
      if ($userfile_size >= $maxsize){
        echo 
      'Das Foto ist zu gross. Es darf höchstens 300 Kb
        betragen.<br><br><a href="eigene.php">zur&uuml;ck</a>'
      ;
        die();
      }

      move_uploaded_file($userfile_tmp$prod_img); 
      Rock on, Chummers
      DrNorton

      Kommentar


      • #4
        @arni
        klar habe ich das vorher versucht, nur leider an die falsche stelle eingebunden.

        @DrNorton
        vielen Dank, jetzt wo es klappt macht es an dieser Stelle auch einen "sinnigen" Eindruck.
        http://www.nanc-angel.de

        Kommentar


        • #5
          Hallo zusammen,

          jetzt habe ich noch das Problem ein Wasserzeichen in meine Bilder einbinden zu lassen, bzw. die Skripte zu vereinen.
          Der Teil aus einem anderen Skript sieht so aus (das PNG Bild liegt auch in meinem aktuellen Verzeichniss):

          PHP-Code:
          $watermark imagecreatefrompng("./watermark.png");

          $watermarktransition 50;

             
          $watermarkwidth imagesx($watermark);
             
          $watermarkheight imagesy($watermark);

             
          $transparent imagecolorat($watermark11);
             
          imagecolortransparent($watermark$transparent);

             
          imagecopymerge($newimage$watermark$imagewidth $watermarkwidth 10$imageheight 
          $watermarkheight 1000$watermarkwidth$watermarkheight$watermarktransition);
             
          imagedestroy($watermark); 

          Habe auch schon versucht das zu verbinden, es muß ja in diesen Teil meines Skriptes eingepflegt werden..

          PHP-Code:
           $destimg=ImageCreateTrueColor($new_width,$new_height) or die('Probleme bei Erstellung des Bildes');
                  
                  
          $srcimg=ImageCreateFromJPEG($prod_img) or die('Probleme bei Zugriff auf das Quellbild');
                  
                   
          ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),
          ImageSY($srcimg)) or die('Probleme bei Groessenanpassung');
                  
                  
          ImageJPEG($destimg,$prod_img_thumb,90) or die('Probleme beim speichern');
                  
                  
          imagedestroy($destimg); 
          Wie mache ich das? Habe mir schon andere Beiträge im Forum mit Wasserzeichen angesehen,
          aber GD ist Neuland für mich und aus PHP.net werde ich auch nicht richtig schlau.
          Zuletzt geändert von firebirder; 29.03.2005, 12:43.
          http://www.nanc-angel.de

          Kommentar


          • #6
            Original geschrieben von firebirder
            Wie mache ich das?
            als allererstes machst du jetzt mal das, was in http://www.php-resource.de/forum/sho...threadid=50454 steht.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              hallo wahsaga,

              zeilenumbrüche habe ich überarbeitet. Solten nun besser aussehen.
              Hast du sonst einen Tipp wie ich diese beiden Befehle verbinden kann?
              http://www.nanc-angel.de

              Kommentar


              • #8
                Mein Ziel ist es doch nur ein Wasserzeichen auf das grosse Bild einzufügen.

                Aber wie nur?
                http://www.nanc-angel.de

                Kommentar


                • #9
                  Original geschrieben von firebirder
                  Aber wie nur?
                  na wo sollte das denn wohl am besten geschehen?

                  zwischen dem verkleinern und dem abspeichern, würde ich doch sagen ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    so sieht es momentan bei mir aus. aber ich bin mir nicht sicher ob bei imagecopymerge($srcimg diese Variable $scrimg stehen darf/muß und ob bei ImageJPEG($destimg die Variable $destimage stehen darf. Der letzte Teil nimmt ja keinerlei bezug auf mein Wasserzeichen.

                    PHP-Code:
                    ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) 
                    or die(
                    'Probleme bei Groessenanpassung');
                            
                            
                            
                    # Wasserzeichen einfügen    
                            
                    $watermark imagecreatefrompng("./watermark.png");
                            
                    $watermarktransition 50;
                            
                    $watermarkwidth imagesx($watermark);
                            
                    $watermarkheight imagesy($watermark);
                            
                    $transparent imagecolorat($watermark11);
                            
                    imagecolortransparent($watermark$transparent);
                            
                    imagecopymerge($srcimg$watermark$sizes[0] - $watermarkwidth 10
                    $sizes[1] - $watermarkheight 1000$watermarkwidth$watermarkheight$watermarktransition);
                               
                            
                            
                            
                    ImageJPEG($destimg,$prod_img_thumb,90) or die('Probleme beim speichern'); 
                    http://www.nanc-angel.de

                    Kommentar

                    Lädt...
                    X