2017-09-06 3 views
-1

Ich habe diesen Code laufen ...Bild speichern als Datei in einem Ordner auf dem Server

$im = imagecreatefromstring($arr['IMAGE']->load()); 
$result = $arr['IMAGE']->load(); 

echo $result; 

exit(); 

und dieser Code auf dem Browser das Bild angezeigt wird. Meine Frage ist ... wie man als Datei speichert und auf dem Server speichert?

Ich benutze diesen Code und es speichert als eine Datei, aber es gibt kein Bild.

define('UPLOAD_DIR', 'testuploads/'); 
// $img = str_replace('data:image/png;base64,', '', $result); 
// $img = str_replace(' ', '+', $img); 
$data = imagejpeg($result); 
$file = UPLOAD_DIR . uniqid() . '.jpeg'; 
$success = file_put_contents($file, $data); 
print $success ? $file : 'Unable to save the file.'; 
+0

'$ im = imagecreatefromstring ($ doc sehen arr ['IMAGE'] -> load()); 'erscheint redundant. Was war der Zweck dieser Linie? Wolltest du später 'imagejpeg ($ im);' 'machen? Überprüfen Sie auch http://php.net/manual/en/function.imagejpeg.php - es gibt wahr oder falsch, keine Daten zurück. Sie müssen das Ausgabeziel als Parameter angeben. RTM. – ADyson

+0

Wenn Sie mehr Code haben, bearbeiten Sie die Frage stattdessen. Trotzdem wird es immer noch nicht funktionieren, wegen dem, was ich über den Rückgabetyp von imagejpeg erwähnt habe. Hast du die Dokumentation gelesen, bevor du diesen Code geschrieben hast? – ADyson

Antwort

1

Verwendung imagejpeg ($ result, $ file) oder imagepng wenn es ein png, statt file_put_contents.

(wobei $ Ergebnis ist Ihr img und $ Ihr Pfad + Dateiname Datei)

EDIT: http://php.net/manual/en/function.imagejpeg.php

Beispiel:

<?php 
// Create a blank image and add some text 
$im = imagecreatetruecolor(120, 20); 
$text_color = imagecolorallocate($im, 233, 14, 91); 
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color); 

// Save the image as 'simpletext.jpg' 
imagejpeg($im, 'simpletext.jpg'); 

?> 
Verwandte Themen