2016-09-28 5 views
-3

Ich muss diesen Code ändern, um Bilder über 500 kB zu skalieren, bevor sie gespeichert werden.Ändern des Codes zum Ändern der Bildgröße beim Hochladen

if(isset($_FILES['photo'])) 
    if(file_exists($_FILES['photo']['tmp_name']) || !is_uploaded_file($_FILES['photo']['tmp_name'])){ 
     $file_name = basename($_FILES['photo']['name']); 

     $temp = explode(".", $_FILES["photo"]["name"]); 
     $newfilename = round(microtime(true)) . '.' . end($temp); 
     $target_path = plugin_dir_path(__FILE__) . "uploads/$newfilename"; 

     if(move_uploaded_file($_FILES['photo']['tmp_name'], $target_path)) { 
      $handle = fopen($target_path, "rb"); 
      $fsize = filesize($target_path); 
      $img_contents = fread($handle, $fsize); 
      fclose($handle); 
     } 
    } 
+2

Willkommen SO speichern tatsächlich etwas geändert. Bitte lesen Sie [Welche Themen kann ich fragen] (http://stackoverflow.com/help/on-topic) und [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to -ask) Und [die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) Und wie man ein [minimales, vollständiges und überprüfbares Beispiel] erstellt (http://stackoverflow.com/help/mcve) SO ist ** nicht eine kostenlose Codierung oder Code-Konvertierung oder Debugging oder Tutorial oder Bibliothek Finding-Service ** Sie müssen auch zeigen, dass Sie einige Anstrengungen unternommen haben, um zu lösen dein eigenes Problem. – RiggsFolly

Antwort

1

Dies ist eine der Funktionen, die Sie zum Ändern der Größe eines Bildes verwendet werden könnte: imagecopyresampled. Ich habe dieses ausgewählt, weil es ein schönes Diagramm zeigt, wie die Dimensionsattribute in den vom Benutzer beigetragenen Notizen funktionieren.

Dies ist der Code von dieser Seite, als 'simpleimage.jpg' ...

// The file 
$filename = 'test.jpg'; 
$percent = 0.5; 

// Get new dimensions 
list($width, $height) = getimagesize($filename); 
$new_width = $width * $percent; 
$new_height = $height * $percent; 

// Resample 
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

// Output 
imagejpeg($image_p, 'simpleimage.jpg', 100); 
+0

Nur Link-Antworten sind verpönt. Fügen Sie mindestens eine nützliche Beschreibung hinzu, da Links zu Off Site-Ressourcen oft beschädigt werden – RiggsFolly

+0

Bearbeitet. Ich wollte hauptsächlich den Namen der PHP-Funktion angeben, aber Sie haben Recht. – sdexp

+0

Das ist viel besser UV – RiggsFolly