bildupload mit php zuschneiden und speichern

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

  • bildupload mit php zuschneiden und speichern

    Aloha!

    ich möchte mich mit folgendem problem an euch wenden:

    ich habe im zuge einer website-aktualisierung versucht einen bildupload für die jeweiligen mitglieder zu ermöglichen, und die hochgeladenen bilder gleich nach meinem gusto umzubenennen und anschließend auf meine gewünschte größe zu zuschneiden.

    ich habe zuerst den dateinamen der hochgeladenen datei über
    PHP-Code:
    $_FILES['picture']['name'
    umbenannt und dann mit dem vom uploader stammenden überschrieben,

    soweit alles kein problem, nun wollte ich mit diesem script:
    PHP-Code:
                    $image $_REQUEST['picture'];
            
    $max_width $_REQUEST['max_width'];
            
    $max_height $_REQUEST['max_height'];

            if (!
    $max_width)
                
    $max_width 80;
            if (!
    $max_height)
                
    $max_height 60;

            
    $size GetImageSize($image);
            
    $width $size[0];
            
    $height $size[1];

            
    $x_ratio $max_width $width;
            
    $y_ratio $max_height $height;

            if ((
    $width <= $max_width) && ($height <= $max_height)) {
                
    $tn_width $width;
                
    $tn_height $height;
            } else if ((
    $x_ratio $height) < $max_height) {
                
    $tn_height ceil($x_ratio $height);
                
    $tn_width $max_width;
            } else {
                
    $tn_width ceil($y_ratio $width);
                
    $tn_height $max_height;
            }

            
    $src ImageCreateFromJpeg($image);
            
    $dst ImageCreate($tn_width$tn_height);
            
    ImageCopyResized($dst$src0000,
                
    $tn_width$tn_height$width$height);
            
    //header('Content-type: image/jpeg');
            
    ImageJpeg($dstnull, -1);
            
    ImageDestroy($src);
            
    ImageDestroy($dst); 
    die bilddatei regesized auf dem server speichern, dies funktioniert jedoch leider nicht.

    ich bestle schon einige zeit daran herum, komme jedoch auf keinen grünen zweig, bin am verzweifeln.

    die gd2-bibliothek ist natürlich installiert und aktiviert.

    ps.: hier das html für upload:
    PHP-Code:
    <form enctype="multipart/form-data" action="file_upload.php" method="post">
    file senden: <input name="picture" type="file">
    breite: <input type="text" name="max_width" /><br />
    höhe: <input type="text" name="max_height" /><br />
    <
    input type="submit" name="submit" value="senden"><br />
    </
    form
    ich würde mich sehr freuen wenn mir jemand hierbei helfen könnte, sollte es zu einem ähnlichen/gleichen problem bereits einen threat geben, so habe ich diesen über die sufu nicht gefunden.
    Zuletzt geändert von MegaPixel; 26.05.2008, 14:33.

  • #2
    Und du erhälst keine Parser Fehler/Notices seitens von PHP? error_reporting() voll aufgedreht? Ergibt ein
    PHP-Code:
    var_dump($image); 
    einen sinnvollen Pfadnamen? Hast du die Bilddatei am Ende des Uploads aus dem temp-Verzeichnis rauskopiert?
    Und ein
    PHP-Code:
    var_dump($src); 
    ergibt eine gültige img-Ressource?
    Und noch etwas aus dem Manual
    The image will be output at half size, though better quality could be obtained using imagecopyresampled().
    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


    • #3
      hallo und danke für deine antwort,

      alle deine fragen kann ich mit JA beantworten, beide pfadangaben sind gültig und verursachen keinerlei fehler.

      ich habe beim code reinkopieren nicht alles erwischt , hier der rest der fürs file-kopieren und speichern verantwortlich ist:
      PHP-Code:
      if(move_uploaded_file($_FILES['picture']['tmp_name'],$tstring))
              {
                  echo 
      "$newfilename wurde erfolgreich upgeloaded!";
              }
              else
              {
                  echo 
      'fehler_moveFile!';
              } 
      hier ist es nun so, dass ich verwirrenderweise weder das echo vom if noch vom else angezeigt bekomme?

      ich habe alles auch schon auf unterschiedliche weise versucht, scheitere jedoch am speichervorgang, der rest scheint soweit zu funktionieren.

      ich bin wirklich ratlos?

      ps.: danke für den hinweis mit imagecopyresampled(), werde in diesem fall natürlich diese funktion verwenden, vielen dank!
      Zuletzt geändert von MegaPixel; 26.05.2008, 16:47.

      Kommentar


      • #4
        habs hinbekommen!

        Kommentar

        Lädt...
        X