Сохранение изображения на сервер с помощью php - PullRequest
2 голосов
/ 12 марта 2010

Эй, у меня есть следующий скрипт, в основном флэш-файл отправляет ему некоторые данные, создает изображение, а затем открывает для пользователя диалоговое окно «Сохранить как», чтобы они могли сохранить изображение в системе. Как мне сохранить изображение на моем сервере?

<?php

$to = $_POST['to'];
$from = $_POST['from'];
$fname = $_POST['fname'];
$send = $_POST['send'];

$data = explode(",", $_POST['img']);
$width = $_POST['width'];
$height = $_POST['height'];
$image=imagecreatetruecolor( $width ,$height );
$background = imagecolorallocate( $image ,0 , 0 , 0 );
//Copy pixels
$i = 0;
for($x=0; $x<=$width; $x++){
    for($y=0; $y<=$height; $y++){
        $int = hexdec($data[$i++]);
        $color = ImageColorAllocate ($image, 0xFF & ($int >> 0x10), 0xFF & ($int >> 0x8), 0xFF & $int);
        imagesetpixel ( $image , $x , $y , $color );
    }
}
//Output image and clean
#header("Content-Disposition: attachment; filename=test.jpg" );
header("Content-type: image/jpeg");

ImageJPEG( $image );
imagedestroy( $image ); 
?>

Помощь будет принята с благодарностью!

Ответы [ 2 ]

4 голосов
/ 12 марта 2010
imagejpeg( $image, $filename );

сохранит изображение в $filename. Так что по сути мог сделать

imagejpeg( $image, $filename );
imagedestroy( $image );
readfile( $filename );

вместо того, чтобы просто звонить

imagejpeg( $image );
0 голосов
/ 12 марта 2010

Немного более изящный способ, поэтому сэкономить на дублированных усилиях можно примерно так:

/* start output buffering to save output */
ob_start();
/* output image as JPEG */
imagejpeg( $image );
/* save output as file */
ob_flush();
file_put_contents( $filename, ob_get_contents() );
...