Flash 二进制传图片到后台Java服务器接收

本文介绍了一种使用Flash客户端将处理后的图片上传至Java Servlet的方法。通过Flash端的Base类,图片被转换为二进制数据并以POST方式发送到指定服务器地址,Java Servlet接收这些数据并将其保存为本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:把客户端处理过的图片返还给服务器
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 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值