Comunidad de diseño web y desarrollo en internet online

Guardar imagen en server

Citar            
MensajeEscrito el 19 Abr 2012 10:21 pm
Hola, estoy haciendo una miniapp que permite personalizar unos globos y guardar una imagen con ello, pero estoy bloqueado en la parte de guardar la imagen final en el server.

Esto es parte del código que crea la imagen en flash:

Código ActionScript :

function crearIMG(e):void {
   capturarIMG(shirt_mc, formato_cb.selectedItem.data);
}
function capturarIMG(target:DisplayObject, tipo:String):void {
         
   //img_count++;
   // dirección de la url PHP
   var phpCreator:URLRequest = new URLRequest("pedidos.php");
   phpCreator.method = URLRequestMethod.POST;
   // objeto que contendrá los datos a enviar
   var datosPOST:URLVariables = new URLVariables();
   // rutinas para capturar el área deseada, en nuestro caso el clip shirt_mc
   var relative:DisplayObject = target.parent;
   var rect:Rectangle =target.getBounds(relative);
   // borde en píxeles que se añade alrededor de la imagen
   var bordeImagen:uint=1;
   var bitmapData:BitmapData = new BitmapData(rect.width + bordeImagen * 2, rect.height + bordeImagen * 2);
   // capturamos la imagen
   bitmapData.draw(relative, new Matrix(1, 0, 0, 1, -rect.x + bordeImagen, -rect.y + bordeImagen));
   var byteArray:ByteArray;
   switch (tipo)  {
      case "JPEG":
      // en el caso jpeg hay que instanciar un objeto pasando 
     // la calidad JPEG antes de invocar el método
          datosPOST.nombreArchivo="imagen"+xmlName+".jpg";
        var jpgEncoder:JPGEncoder = new JPGEncoder(100);
        byteArray = jpgEncoder.encode(bitmapData);
        break;
      case "PNG":
        default:
        datosPOST.nombreArchivo="imagen"+xmlName+".png";
        byteArray = PNGEncoder.encode(bitmapData);
        break;
   }
   // codicamos en Base64
   var byteArrayAsString:String = Base64.encodeByteArray(byteArray);
   // rellenamos el objeto contenedor con los datos a enviar
   datosPOST.image = byteArrayAsString;
   datosPOST.tipo=tipo;
   phpCreator.data = datosPOST;
   // enviamos los datos
   navigateToURL(phpCreator, "_self");
}



y este el script php:

Código PHP :

if ($_POST['tipo'] == 'PNG'){
   header('Content-Type: image/png');
 }else{
   header('Content-Type: image/jpeg');
}
header("Content-Disposition: attachment; filename=".$_POST['nombreArchivo']);
echo base64_decode($_POST["image"]);

   $target_path = "pedidos/";
    $target_path = $target_path . $_POST['nombreArchivo'];
    //if(move_uploaded_file($_FILES['saul']['tmp_name'], $target_path)) {
   if(move_uploaded_file($_POST["image"], $target_path)) {   
        echo "DONE";
    } else {
        echo "ERROR NO MOVE";
    }


Pues básicamente quiero que la imagen que manda el swf se guarde en una carpeta del server, agradecería mucho su ayuda.

Saludos.

Por woch

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Abr 2012 11:31 am
¿Pero cual es el error? ¿No manda la imágen o PHP no tiene permisos para moverlo? Usa un sniffer para saberlo, si no tienes ninguno, charlesproxy.com es una opción

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Abr 2012 02:42 pm
Hola Jorge, gracias por tu ayuda.


Ya asigne los permisos al PHP, el error esta en que la imagen se descarga a la pc pero no se guarda en la capeta del server.

Saludos.

Por woch

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Abr 2012 03:30 pm
Ok, esta bastante mal el script de PHP, Los headers fuerzan la descarga, luego pillas el archivo del array $_POST en vez de $_FILES ... estoy un poco olvidado de PHP, pero puedes usar el PHP de este ejemplo que hice ya hace bastante tiempo (2005), era con AS2 (donde no se podía cambiar el nombre del archivo que se subía), creo que serviría igual en AS3, http://www.flash-db.com/Tutorials/upload/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2012 06:36 pm
Hola Jorge, nuevamente gracias por tu ayuda.

Tenias razón el archivo php estaba bastante mal y al final encontre la solución en los comentarios de este articulo:

http://www.adobe.com/devnet/flash/articles/saving_flash_graphics.html

Saludos.

Por woch

2 de clabLevel



 

chrome

 

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