Comunidad de diseño web y desarrollo en internet online

Guardar imagen en carpeta del servidor

Citar            
MensajeEscrito el 10 Dic 2009 04:05 pm
Hola a tod@s, es mi primer post en el foro de PHP.
Estoy dessarrollando una Postal Navideña en flash y necesito interactuar con PHP para poder guardar imagenes en carpetas y así poder usarlas después en mi flash.
El tema es que quiero hacer un Screenshot de mi pantalla en un cierto punto para que esa sea la foto de mi Postal navideña, ya tengo el código que me genera el screenshot creado, es el siguiente:

Código ActionScript :

jpgSource = new BitmapData(950, 713);
jpgSource.draw(postal_mc);

var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("jpegEncoder.php?name=postalNavideña.jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = "POST";
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank");


El problema es que este código junto con el siguiente php:

Código PHP :

<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
   // get bytearray
   $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];


   // add headers for download dialog-box
   header('Content-Type: image/jpeg');
   header("Content-Disposition: attachment; filename=".$_GET['name']);
   
   echo $jpg;
}
?>


me crea un archivo y me lo descarga. lo que yo querría es que la imagen me la guarde en una carpeta del servidor para así después mandarla por mail. (como mandar el mail ya sé como hacerlo).

Alguien podría decirme como hacerlo para que me guarde la imagen?

Muchas gracias,
Pimager

Por Pimager

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Dic 2009 09:28 pm
No lo he probado. Respondo por pura intuición al ver tu problema. Creo que la solución sería hacer algo así:

Código PHP :

if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) 
{ 
   // get bytearray 
   $jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; 
 
 
   file_put_contents($_GET['name'],$jpg);
} 


Según la documentación la función file_put_contents() es segura para datos binarios así que debería funcionar.
Debes controlar el nombre de archivo pues podrías sobreescribir un archivo existente.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Dic 2009 10:04 am
Muchas gracias, era justo lo que necesitaba, ahora ya me guarda la imagen!!!!

Gracias de nuevo
Pimager

Por Pimager

38 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.