kostenloser Webspace werbefrei: lima-city


Größe per auswahl (Bilder)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    simsobjekts

    Kostenloser Webspace von simsobjekts, auf Homepage erstellen warten

    simsobjekts hat kostenlosen Webspace.

    Abend @all,

    ich möchte gerne das der User per Dropliste enscheiden wie klein das bild werden soll aber ertwas will nicht so recht.

    admin.php

    <html>
    
    <head> 
    <title>Bilder Upload </title>
    <body>
    Groesse waehlen<br/>
    
    <form name="groß" method="post">
    <div>
    <select name="groß">
    <option value="200x200;"/>200x200</option>
    <option value="400x400;"/>400x400</option>
    </select>
    </div>
    </form>
    Bild hochladen<br/>
    
    <form action="upload.php" enctype="multipart/form-data" method="post"> <input name="file" type="file" />
    
    <input type="submit" value="Ok, Hochladen!" /> </form><!-- br -->
    
    </body>
    <html>


    upload.php

    // Set a maximum height and width
     if($_POST[groß]=='200x200'){
    $width = 200;
    $height = 200;
    }else{
    if($_POST[groß]=='400x400'){
    $width = 400;
    $height = 400;
    }}
    $tempname = $_FILES['file']['tmp_name']; 
    $name = $_FILES['file']['name']; 
    $type = $_FILES['file']['type']; 
    $size = $_FILES['file']['size'];  
    if($type != "image/jpeg") { 
        $err[] = "jpeg Dateien dürfen hochgeladen werden."; 
    } 
    if($size > "5000000") { 
        $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!"; 
    }  
    if(empty($err)) { 
        list($width_orig, $height_orig) = getimagesize($tempname);
    
    $ratio_orig = $width_orig/$height_orig;
    
    if ($width/$height > $ratio_orig) {
       $width = $height*$ratio_orig;
    } else {
       $height = $width/$ratio_orig;
    }
    $image_p = imagecreatetruecolor($width, $height); // neues, leeres Bild wird erstellt
    $image = imagecreatefromjpeg($tempname); //=> das zwischengespeicherte Bild wird eingelesen
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); //=> das zweite Bild wird in das Erste kopiert
    
    // Output
    imagejpeg($image_p, $name, 100); //=> Das Bild wird gespeichert in DATEIN
    
        echo "Die Datei $name wurde erfolgreich hochgeladen!";
    	echo"<br/>";
     echo "Verzeichnis" . $name;
    	
    } 
    else { 
        foreach($err as $error) 
        echo "$error<br>"; 
    } 
    ?>


    irgendwie habe ich das gefühl das das was in der dropliste ausgewählt wir gar nicht ankommt in der upload.php

    freue mich auf jede Hilfe

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo,
    nimm einfach das Semikolon im Option-Feld weg, dann sollte es funktionieren.

    <option value="200x200"/>200x200</option>
    <option value="400x400"/>400x400</option>


    ich würde aber eher einen eindeutigeren Feldnamen wählen

    <option value="1"/>200x200</option>
    <option value="2"/>400x400</option>

  4. t*****b

    $_GET["groß"] statt $_GET[groß] verwenden.
  5. Autor dieses Themas

    simsobjekts

    Kostenloser Webspace von simsobjekts, auf Homepage erstellen warten

    simsobjekts hat kostenlosen Webspace.

    nein , leider nicht

    Warning: Division by zero in verzeichnis/upload.php on line 26 
    Warning: imagecreatetruecolor(): Invalid image dimensions in verzeichnis/upload.php on line 31 
    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in verzeichnis/upload.php on line 33 
    Warning: imagejpeg(): supplied argument is not a valid Image resource in /verzeichnis/upload.php on line 36


    außer dem werden die Zugriffsrecht immer auf 600 gestellt ich bruach sie aber immer auf 644 kann man das ändern// das das automatisch auf 644 ist
  6. Hab Deinen Code mal etwas aufgeräumt...

    admin.php:
    <html>
    <head> 
    <title>Bilder Upload </title>
    <body>
    <form action="upload.php" enctype="multipart/form-data" method="post">
    Groesse waehlen<br/>
    <div>
    <select name="size">
    <option value="200x200">200x200</option>
    <option value="400x400">400x400</option>
    </select>
    </div>
    Bild hochladen<br/>
    <input name="file" type="file" /><input type="submit" value="Ok, Hochladen!" />
    </form><!-- br -->
    </body>
    <html>

    upload.php:
    <?php 
      // Set a maximum height and width
      switch ($_POST['size']) {
        case '400x400':
          $width = 400;
          $height = 400;
          break;
        default:
          $width = 200;
          $height = 200;
      }
    
      $tempname = $_FILES['file']['tmp_name']; 
      $name = $_FILES['file']['name']; 
      $type = $_FILES['file']['type']; 
      $size = $_FILES['file']['size'];  
      if($type != "image/jpeg") { 
        $err[] = "jpeg Dateien dürfen hochgeladen werden."; 
      } 
      if($size > "5000000") { 
        $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!"; 
      }  
      if(empty($err)) { 
        list($width_orig, $height_orig) = getimagesize($tempname);
    
        $ratio_orig = $width_orig/$height_orig;
    
        if ($width/$height > $ratio_orig) {
          $width = $height*$ratio_orig;
        } else {
          $height = $width/$ratio_orig;
        }
        $image_p = imagecreatetruecolor($width, $height); // neues, leeres Bild wird erstellt
        $image = imagecreatefromjpeg($tempname); //=> das zwischengespeicherte Bild wird eingelesen
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); //=> das zweite Bild wird in das Erste kopiert
    
        // Output
        imagejpeg($image_p, $name, 100); //=> Das Bild wird gespeichert in DATEIN
        // Speicher freigeben
        imagedestroy($image);
        imagedestroy($image_p);
        echo "Die Datei $name wurde erfolgreich hochgeladen!<br/>Verzeichnis" . $name;
      } else { 
        foreach($err as $error) 
          echo "$error<br>"; 
      } 
    ?>


    So funktioniert es, aber alles perfekt ist da noch nicht... z.B. werden Bilder mit gleichem Namen einfach überschrieben
  7. Autor dieses Themas

    simsobjekts

    Kostenloser Webspace von simsobjekts, auf Homepage erstellen warten

    simsobjekts hat kostenlosen Webspace.

    staymyfriend schrieb: Hab Deinen Code mal etwas aufgeräumt...


    Dankeschön:thumb:

    leider habe ich noch das problem wie ich den Zugriff ändere das Skript baut es immer in 600 das Das nur ich zugriff habe , aber es muss immer 644 haben damit das funktioniert. Wie kann man das Problem lösen:confused:

  8. Was meinst Du? Für welches File brauchst du die Zugriffsrechte 644?

    Grundsätzlich geht das so: $success = chmod("dateiname", 0644);

    Beitrag zuletzt geändert: 2.11.2009 17:30:43 von staymyfriend
  9. Autor dieses Themas

    simsobjekts

    Kostenloser Webspace von simsobjekts, auf Homepage erstellen warten

    simsobjekts hat kostenlosen Webspace.

    die datei die ensteht bie den verkleinern die ist komischerweise immer nur für mich nicht für Gruppe oder öffentlich
  10. 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!