Foros del Web » Programando para Internet » ASP Clásico »

Recoger datos binarios pasados con POST

Estas en el tema de Recoger datos binarios pasados con POST en el foro de ASP Clásico en Foros del Web. hola a todos. tengo una película flash que me permite tomar una fotografía con una cámara web, y necesito luego pasar la imágen a una ...
  #1 (permalink)  
Antiguo 20/06/2010, 19:26
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 17 años, 8 meses
Puntos: 1
Recoger datos binarios pasados con POST

hola a todos. tengo una película flash que me permite tomar una fotografía con una cámara web, y necesito luego pasar la imágen a una página asp.
el código del flash es el siguiente:

// comienzo del código as

import flash.display.Bitmap;
import flash.display.BitmapData;
import com.adobe.images.JPGEncoder;
import flash.net.FileReference;

var quality:int = 100;
var bandwidth:int = 0;
var cam:Camera = Camera.getCamera();
cam.setQuality(bandwidth, quality);
cam.setMode(320,240,3,false);
var video:Video = new Video(320,240);
video.attachCamera(cam);
video.x = 20;
video.y = 100;
addChild(video);

var bgColor:uint = 0xCAD2AE;

var bitmapData:BitmapData = new BitmapData(video.width,video.height,false,bgColor) ;

var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.x = 360;
bitmap.y = 100;
addChild(bitmap);

capture_mc.buttonMode = true;
capture_mc.addEventListener(MouseEvent.CLICK,captu reImage);

save_mc.buttonMode = true;
save_mc.addEventListener(MouseEvent.CLICK,saveImag e);

function captureImage(e:MouseEvent):void {
bitmapData.draw(video);
}

var fileRef:FileReference = new FileReference();

function saveImage(e:MouseEvent):void{
var encoded_jpg:JPGEncoder = new JPGEncoder(100);
var jpg_binary:ByteArray = encoded_jpg.encode(bitmapData);
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
var request:URLRequest = new URLRequest("http://localhost/camara/save.asp");
request.requestHeaders.push(header);
request.method = URLRequestMethod.POST;
navigateToURL(request, "_self");
var loader:URLLoader = new URLLoader();
loader.load(request);
}

// final del código as

a continuación transcribo el código de la página save.asp

<%
fileData = Request.BinaryRead(Request.TotalBytes)
strFileName = "foto.jpg"
strPath = Server.MapPath("/camara/")
strPath = strPath & strFileName

Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
Response.AddHeader "Content-Type", "image/jpg"
Response.ContentType = "application/octect-stream"
%>

al presionar el botón save_mc de la pélicula flash (embebida en la página index.asp) me abre un cuadro de diálogo que me invita a abrir o descargar el archivo foto.jpg, pero al hacer cualquiera de las dos cosas la imágen foto.asp no contiene nada (es un archivo vacío).
¿qué estoy haciendo mal en el archivo save.asp?
desde ya, muchas gracias.
  #2 (permalink)  
Antiguo 23/06/2010, 09:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Recoger datos binarios pasados con POST

Encontré el siguiente código en PHP que puede llegar a hacer lo que yo necesito...

// inicio del php
if(isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
$img = $_GET["img"];
$filename = "images/poza_". mktime(). ".jpg";
file_put_contents($filename, $jpg);
} else{
echo "Encoded JPEG information not received.";
}
// fin del php

Alguien sabría como quedaría ese código en ASP?

La película flash desde la que se envía la imágen tiene el siguiente código AS3...

// inicio del código as3
import flash.display.Bitmap;
import flash.display.BitmapData;
import com.adobe.images.JPGEncoder;
import flash.net.FileReference;
var quality:int = 100;
var bandwidth:int = 0;
var cam:Camera = Camera.getCamera();
cam.setQuality(bandwidth, quality);
cam.setMode(320,240,3,false);
var video:Video = new Video(320,240);
video.attachCamera(cam);
video.x = 20;
video.y = 100;
addChild(video);
var bgColor:uint = 0xCAD2AE;
var bitmapData:BitmapData = new BitmapData(video.width,video.height,false,bgColor) ;
var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.x = 360;
bitmap.y = 100;
addChild(bitmap);
capture_mc.buttonMode = true;
capture_mc.addEventListener(MouseEvent.CLICK,captu reImage);
save_mc.buttonMode = true;
save_mc.addEventListener(MouseEvent.CLICK,saveImag e);
function captureImage(e:MouseEvent):void {
bitmapData.draw(video);
}
var fileRef:FileReference = new FileReference();
function saveImage(e:MouseEvent):void{
var encoded_jpg:JPGEncoder = new JPGEncoder(100);
var jpg_binary:ByteArray = encoded_jpg.encode(bitmapData);
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
var request:URLRequest = new URLRequest("http://localhost/camara/save.asp");
request.requestHeaders.push(header);
request.method = URLRequestMethod.POST;
request.data = jpg_binary;
navigateToURL(request, "_self");
var loader:URLLoader = new URLLoader();
loader.load(request);
}
// fin del códico as3

Muchas gracias.
  #3 (permalink)  
Antiguo 24/06/2010, 10:29
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: Recoger datos binarios pasados con POST

necesito hacer algo parecido que una pagiina web el usuario pueda capturar una foto con su camara web crees que con lo que tienes se pueda hacer
  #4 (permalink)  
Antiguo 25/06/2010, 11:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 60
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Recoger datos binarios pasados con POST

Si. Si tu web la tenés hecha en PHP, te van a servir los códigos publicados. Si tenés todo armado en ASP vas a estar en la misma que yo. Otra cosa que podés hacer es modificar el codigo AS para que no envíe la imágen a ninguna página, sino que directamente la guarde en el disco rígido.
Mientras tanto sigo esperando por ayuda.

Etiquetas: post, recoger, binario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:34.