在Flex中获取一个屏幕截图(Screenshot)并将其传递给ASP.NET

By Minidxer | April 26, 2008

在Adobe Flex 3中,你可以通过下面的代码获取任何控件并保存为bitmap图片(需要import “mx.graphics.ImageSnapshot”,想必大名鼎鼎的snapshot大家都应该知道吧?)。

  1. var snapshot:ImageSnapshotImageSnapshot.captureImage(backgroundCanvas);

默认的话,使用的是PNG格式的编码。如果你想将图片传递到服务器端,那就用下面的代码:


  1. var req:URLRequest = new URLRequest();
  2. req.method = URLRequestMethod.POST;
  3. req.data = snapshot.data;
  4. req.contentType="application/octet-stream";
  5. req.url = "snapshotuploadhandler.aspx";
  6. var loader:URLLoader = new URLLoader;
  7. loader.load(req);

在ASP.NET中读取上传了的文件是非常轻松的,代码如下:

  1. private byte[] readPostedFile()
  2. {
  3.    if (Request.ContentLength > 0)
  4.    {
  5.        byte[] buffer = new byte[Request.ContentLength];
  6.        using (BinaryReader br = new BinaryReader(Request.InputStream))
  7.            br.Read(buffer, 0, buffer.Length);
  8.        return buffer;
  9.    }
  10.    else
  11.    {
  12.        return null;
  13.    }
  14. }

Topics: Flex | 2 Comments » | 1,062 views Tags: , , , , , ,

你可能还对下列文章感兴趣:

2 comments | Add One

  1. fwl - 12/31/2009 at 1:15 am

    您好,我也在做类似的开发。在flex工程里截图,然后load数据,完了在后台接收,这个接收的函数在什么时候调用呢?我老是不成功,谢谢。

  2. fwl - 12/31/2009 at 1:16 am

    我邮箱fwl2000@163.com,请不吝指教。谢谢。

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts