Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2010, 12:29
JulioGaGarcia
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 0
Enviando imagen al servidor

Hola, tengo un problema que no sé cómo solucionarlo por mucho que lo intento.

Quiero que el cliente envíe mediante un formulario una imagen seleccionada por él al servidor. El script funciona correctamente: carga la imagen, la redimensiona para que pueda visulizarla previamente, pero al enviarla mediante JPGEncoder no envía los datos (píxels). No voy a poner todo el código porque sería muy largo, pero pondré lo más importante a ver si alguien puede darme alguna pista.

Código ActionScript:
Ver original
  1. function ImageLoaded(event:Event):void {
  2.     txtrprueba="Se ha cargado la imagen! ";
  3.     bitmap = Bitmap(event.target.content);
  4.     bitmap.smoothing = true;
  5.     addChild(bitmap) ;
  6.     if ( bitmap.width > MAX_WIDTH || bitmap.height > MAX_HEIGHT ) {
  7.         resizeBitmap ( bitmap ) ;
  8.     }
  9.     bitmap.x=42;
  10.     bitmap.y=91;
  11.     var jpgSource:BitmapData = new BitmapData (bitmap.width, bitmap.height);
  12.     jpgSource.draw(bitmap);
  13.  
  14.     var jpgEncoder:JPGEncoder = new JPGEncoder(80);
  15.     byteArray = jpgEncoder.encode(jpgSource);
  16. }
  17.  
  18. function envia(event:Event){
  19.     txtprueba.text="Se ha pulsado";
  20.     var variables = new URLVariables();
  21.     variables.nombre="Benjamin";
  22.     variables.fileName=txtarchivo.text;
  23.     variables.MAX_FILE_SIZE=1000000;
  24.     variables.file = byteArray;
  25.     var request:URLRequest = new URLRequest();
  26.     request.requestHeaders.push(new URLRequestHeader("application","x-www-form-urlencoded"));
  27.     request.requestHeaders.push(new URLRequestHeader("multipart","form-data"));
  28.     request.url = "http://localhost/pruebas/bytearray.asp";
  29.     request.method = URLRequestMethod.POST;
  30.     request.data = variables;   try {
  31.         navigateToURL(request,"_self");
  32.     }
  33.     catch (error:Error) {
  34.         trace("Unable to load URL");
  35.     }
  36.     function completeHandler(event:Event):void {
  37.         //trace(event.target.data.welcomeMessage);
  38.         txtprueba.text="El envío se ha completado.";
  39.     }
  40. }


En la página de recepción del envío aparecen todas las variables que se indican, pero en la variable file aparece ÿØÿà, que es la firma de cabecera de una imagen jpg. Se supone que luego vendrían los datos codificados por el JPGEncoder, pero no aparecen :( Agradeceré cualquier información que podais aportarme. Desde ya, gracias por vuestro interés y un saludo.