Comunidad de diseño web y desarrollo en internet online

Problema al grabar una captura de pantalla en AS3

Citar            
MensajeEscrito el 26 Ago 2011 08:39 am
Hola a todos, estoy teniendo un problemilla a la hora de guardar en el servidor un screenshot hecho en FlashCS4 + AS3, les comento:
Hasta el momento he encontrado un código que guarda el contenido de un MC en un archivo PNG y me despierta una ventana de descarga para poder guardarme el archivo en mi PC, pero lo que yo quiero es coger el archivo y en lugar de descargarlo, que lo suba y lo guarde en una carpeta de mi servidor.
Les dejo el código de lo que tengo hasta ahora:

Código ActionScript :

private function imageCapture(target:DisplayObject):void {
   var fileName:String;
   var relative:DisplayObject = target.parent;
   var rect:Rectangle =target.getBounds(relative);

   var PIXEL_BUFFER:uint=1;
   // capture within bounding rectangle; add a 1-pixel buffer around the perimeter to ensure that all anti-aliasing is included
   var bitmapData:BitmapData = new BitmapData(rect.width + PIXEL_BUFFER * 2, rect.height + PIXEL_BUFFER * 2);
   // capture the target into bitmapData
   bitmapData.draw(relative, new Matrix(1, 0, 0, 1, -rect.x + PIXEL_BUFFER, -rect.y + PIXEL_BUFFER));
   // encode image to ByteArray
   var byteArray:ByteArray;
   imgCount++;
   fileName = "image"+ Singleton.getInstance().serviceSO + "_" + imgCount +".png";
   byteArray = PNGEncoder.encode(bitmapData);
   saveHelper.save(byteArray, nombreArchivo);
}

Por lo que veo, debo sustituir la línea:

Código ActionScript :

saveHelper.save(byteArray, nombreArchivo);
por la parte que sube la imagen al servidor, pero no sé como.

Alguna mano amiga?

En el siguiente link pueden ver el código fuente de donde me he descargado el ejemplo, por si a alguien le interesa.

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ago 2011 02:11 pm
¿Tu ejemplo usa algún archivo externo para forzar el download? (PHP o similar) Quizás tenga algún método upload (en vez de save)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Ago 2011 12:28 am
Hola Jorge, todo lo que uso es una librería de conversión a PNG que puedes ver en el liiink de mi primer post.
La idea es subir la imagen usando una página de C#, lo que no sé es como hacerlo, para llamar a esa página y enviarle el archivo PNG resultante, el nombre que le quiero dar, ...

Alguna idea?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ago 2011 01:27 am
private function imageCapture(object:DisplayObject,ancho:Number,alto:Number):void
{
var jpgSource:BitmapData = new BitmapData(ancho, alto, false);
jpgSource.draw(this);

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loaderComplete);

var jpgEncoder:JPGEncoder = new JPGEncoder(80);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);

var request:URLRequest = new URLRequest("http://servicio_que_espera_imagen_en_post.php");
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
request.requestHeaders.push(header);
request.method = URLRequestMethod.POST;
request.data = jpgStream;

loader.load(request);
}

Por D0M41N

56 de clabLevel



Genero:Masculino  

Argentina

chrome
Citar            
MensajeEscrito el 30 Ago 2011 07:11 am
Muchas gracias D0M41N, pero soy un poco novatillo en PHP, podrías ponerme un ejemplo en PHP/C# de como recibir la imagen y grabarla en disco?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ago 2011 10:32 am
Hola de nuevo, he encontrado en C# una página que sube y guarda el archivo en el servidor.
El código es el siguiente:

Código :

try
{
    if (context.Request.Files.Count > 0)
    {
        HttpPostedFile uploadFile = context.Request.Files[0];
        string extension = Path.GetExtension(uploadFile.FileName).ToLower();
        if (extension == ".jpg" || extension == ".jpeg" || extension == ".gif" || extension == ".png")
        {
            uploadFile.SaveAs("c:/docs/uploadFiles/" + uploadFile.FileName);
        }
        else
        {
             context.Response.Write("result=KO1");
        }
     }
     else
     {
         context.Response.Write("result=KO2");
     }
}
catch (Exception ex)
{
      context.Response.Write("result=KO " + ex);
}

Pero en todo momento me devuelve "KO2", es decir, es como si no le llegara el archivo. Alguna idea?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox

 

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