需求:把客户端处理过的图片返还给服务器
Flash端代码
01 package {
02 import com.adobe.images.JPGEncoder;
03 import flash.display.Sprite;
04 import flash.events.Event;
05 import flash.events.IOErrorEvent;
06 import flash.net.URLLoader;
07 import flash.net.URLRequest;
08 import flash.net.URLRequestMethod;
09 import flash.text.TextField;
10 import flash.utils.ByteArray;
11 import mx.core.BitmapAsset;
12
13 [SWC(width='400',height='400',backgroundColor='0x4c4c4c',frameRate='30')]
14 public class Base extends Sprite
15 {
16 [Embed(source="../1.jpg")] // same png / gif files
17 private var Photo:Class ;
18
19 private var url:String = "http://localhost:8080/PicSample/aaa" ;
20 private var _loader:URLLoader = new URLLoader();;
21 private var reposeTxt:TextField;
22
23 public function Base()
24 {
25 reposeTxt = new TextField();
26 addChild(reposeTxt);
27 reposeTxt.text = "waiting....";
28
29 var photo:BitmapAsset = new Photo();
30 var urlRequest:URLRequest = new URLRequest(url);
31
32 var JPG:JPGEncoder = new JPGEncoder(70);
33 var bary:ByteArray = JPG.encode(photo.bitmapData);
34 urlRequest.data=bary;
35 urlRequest.method=URLRequestMethod.POST;
36 urlRequest.contentType = "application/octet-stream";
37 _loader.addEventListener(Event.COMPLETE,completeHandler);
38 _loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
39 _loader.load(urlRequest);
40
41 }
42 private function completeHandler(evt:Event):void {
43 reposeTxt.text = "成功";
44 }
45 private function ioErrorHandler(evt:IOErrorEvent):void {
46 reposeTxt.text = "失败";
47 }
48 }
49 }
Java Servlet
01 @Override
02 protected void doPost(HttpServletRequest request, HttpServletResponse response)
03 throws ServletException, IOException {
04
05 ServletInputStream in = request.getInputStream();
06 OutputStream outStream = new FileOutputStream("e:/m34.jpg");
07 int b =0;
08 while(b!= -1)
09 {
10 in.available();
11 b = in.read();
12 if(b!= -1)
13 outStream.write(b);
14 }
15 outStream.close();
16 }
分享到:
相关推荐
3. **AMF(Action Message Format)通信**:AMF是一种高效的数据交换格式,常用于Flash与服务器之间的二进制通信。使用如BlazeDS或LCDS这样的服务器组件,可以实现Flash与Java之间的AMF通信,提高数据传输效率。 4....
通过 `Socket` 类,Flash 可以发送和接收二进制数据。 ### 2. Socket 类的使用 #### 2.1 创建 Socket 实例 在示例代码中,我们首先创建了一个 `Socket` 对象实例: ```actionscript private var client:Socket =...
标题中的“Flex拍照并上传到java后台——未调试成功”表明这是一个关于使用Adobe Flex技术进行拍照功能实现,并将拍摄的照片上传到Java后端服务器的项目,但目前该项目可能在调试阶段遇到了问题。Flex是一种用于创建...
3. 处理上传:在Action中,将接收到的二进制数据保存到服务器的文件系统或者数据库中。 4. 显示结果:成功上传后,可以返回图片URL或Base64编码的图像数据,供前端显示。 此外,为了保证兼容性,可能还需要对不支持...
- Flex端处理响应,接收到Excel文件的二进制流后,可以提供下载或者直接在浏览器中打开。 4. **安全性与性能优化**: - 对于大量数据,考虑分页导出,避免一次性加载过多数据导致性能问题。 - 使用内存优化策略...
- **AMF(Action Message Format)**:AMF是一种二进制的数据交换格式,提供高效的数据传输。Flex使用BlazeDS或LCDS等中间件与Java后台建立AMF连接,实现双向通信。AMF允许更快速的数据交换,支持推送,适合实时性...
5. **Java端处理**:在Java服务器端,接收到图像数据后,可能需要进一步处理,比如存储到数据库、生成缩略图等。Java提供了多种库,如Apache Commons IO和Java ImageIO,来帮助处理图像文件。 6. **返回结果**:...
2. **消息处理**:服务器接收来自客户端的消息,解析其内容,然后根据消息类型分发到相应的处理函数,如群聊消息广播、私聊消息定向发送。 3. **用户管理**:实现用户的登录、注销功能,维护用户状态信息,确保消息...
3. **camera.swf**:这是一个SWF文件,是Adobe Flash Player能够识别和执行的二进制文件。它包含了Flash上传组件的用户界面和与服务器通信的逻辑。用户可以通过此组件选择本地文件,预览,甚至利用摄像头实时捕获...
服务器端需要读取请求体中的二进制数据,将其保存为图片文件,并可能进行一些验证和处理。例如,在Servlet中,你可以这样处理上传: ```java protected void doPost(HttpServletRequest request, ...
AMF是一种二进制的高效数据交换格式,由Adobe Flash Player支持。在Flex和Java之间使用AMF通讯,可以实现低延迟、高效率的数据传输。Apache BlazeDS项目提供了AMF通道,使得Flex能够与Java应用服务器进行AMF通讯。...
1. AMF通信:AMF是一种高效的二进制序列化格式,用于Flex与Java之间的数据传输。Adobe的BlazeDS或LCDS(LiveCycle Data Services)提供了AMF通道,使得Flex4应用能够轻松调用Java服务。在Flex中,使用RemoteObject或...
用户选择文件后,Flex会将文件数据转换为二进制流,并发送到服务器。 在Java后端,我们可以使用诸如Spring MVC、Struts2等Web框架来接收和处理这些文件数据。Java的Servlet API提供了HttpServletRequest对象,其中...
AMF是一种二进制数据格式,用于在Flex客户端和Java服务器之间进行高效的数据交换。它将对象序列化为紧凑的字节流,减少了网络传输的开销,提高了性能。AMF支持两种版本,AMF0和AMF3,其中AMF3提供了更好的压缩和...
为了提高效率,可以使用AMF,它是Adobe开发的一种二进制序列化格式,能显著减少数据传输量。 - BlazeDS或LCDS是Adobe提供的服务器端库,可以支持AMF通信,使Flex与Java之间的数据交换更加高效。 5. **集成步骤** ...
HTML5的JavaScript可以与Java后台进行交互,通过Ajax请求将摄像头捕获的图像数据发送到Java服务器端。Java后端可以处理这些二进制数据,如保存到服务器、进行图像处理等。使用Java的Servlet技术,可以接收并处理...
SWF(ShockWave Flash)文件是Flash Player能够识别和播放的二进制文件,可以包含交互式内容,如上传组件。但由于安全性、性能和移动设备支持的问题,Flash已逐渐被淘汰,现在的上传方案更多地转向HTML5的File API。...
用户在前端选择图片后,SwfUpload组件会将文件以二进制流的形式通过Flash传递到服务器。这个过程中,SwfUpload可以控制上传速度、显示上传进度,并且可以通过JavaScript回调函数与HTML页面交互,更新用户界面。 3....
BlazeDS提供了远程方法调用(RPC)功能,使Flex客户端能够直接调用Java服务器上的方法。Remoting允许开发者在Flex界面中使用Java服务,简化了客户端与服务器的交互。 5. **消息传递**: BlazeDS集成了Apache ...
对于上传文件,需要将其设置为`multipart/form-data`,这样才能正确地传输二进制文件数据。在示例中,`...