在我的项目中,我们使用adobe flash builder 4.6作为客户端脚本,visual studio作为中介(用于连接oracle数据库)。在此,在flex 4.6中我们从网络摄像头捕获的图像工作正常,之后捕获图像我们需要在oracle数据库中保存这个捕获的图像,所以为了节省我们需要将这个图像从flex传递到dot-net(visual studio)所以我需要一个关于如何处理这个的帮助(传递图像)从flex到dot-net)如果有人知道请帮帮我,我将非常感谢他们
答案 0 :(得分:0)
Finally i got the solution,what i did is
<mx:HTTPService id="savepcktdata" method="POST"
url="{URL}com/...../..../PckInbox.aspx"
result="savepcktdata_resultHandler(event)"
resultFormat="text">
<mx:request>
<Operation>savepcktdata</Operation>
<bytes>
{str64enc}
</bytes>
</mx:request>
</mx:HTTPService>
您必须通过Httpservice从flex传递base64string到dotnet
我们将从网络摄像头拍摄照片后获取图像,并在获取字符后需要使用 按如下方式对这些图像字节进行一些转换,然后你需要传递给base64字符串 下面的方法描述了如何进行转换;
[Bindable]public var imgbytes:ByteArray=new ByteArray();
[Bindable]public var str64enc:String="";
protected function btnimage_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
if(webimage1.content==null)
{
takepicture1();
}
else if(webimage2.content==null)
{
takepicture2();
}
}
这里webimage1是图像标签的id,如...
<mx:Image id="webimage1" height="18" width="20"/>
public function takepicture1():void
`{
var urlRequest:URLRequest = new URLRequest();
var picture1:BitmapData=new BitmapData(vddisplay.height,vddisplay.width);
picture1.draw(vddisplay);
webimage1.source=new Bitmap(picture1);
var je1:JPEGEncoder=new JPEGEncoder(50);
imgbytes=je1.encode(picture1);
var base64enc:Base64Encoder=new Base64Encoder();
base64enc.encodeBytes(imgbytes);
str64enc=base64enc.toString();
}
`
在Dotnet;
string str = Convert.ToString(Request.Form["bytes"]);