?
Flex 端的上传代码:
?
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
????? xmlns:s="library://ns.adobe.com/flex/spark"
????? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
?<fx:Declarations>
??<!-- Place non-visual elements (e.g.,services,value objects) here -->
?</fx:Declarations>
?<fx:Script>
??<![CDATA[
???import com.zxt.basic.wfdesign.util.ChartExport;
???
???import mx.controls.Alert;
???
???public function exportImg():void{
????var urlRequest:URLRequest = new URLRequest("http://localhost:8080/workflow14/saveImage.jsp");
????urlRequest.data = transByteArray(myPanel);//需要上传的数据
????urlRequest.contentType = "application/octet-stream";
????urlRequest.method =? URLRequestMethod.POST;
????var urlLoader:URLLoader = new URLLoader();
????urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
????urlLoader.addEventListener(Event.COMPLETE,urlLoader_CompleteHandler);
????urlLoader.load(urlRequest);?
????
???}
???
???public function urlLoader_CompleteHandler(evt:Event):void{
????Alert.show("保存成功!");
?????
???}
??
?
? /**
? * 返回图片的字节流
? */
? public static function transByteArray(displayObject:DisplayObject):ByteArray{?
?? file.addEventListener(Event.COMPLETE,uploadJpgSucc);
?? var bitmapData:BitmapData = new BitmapData(displayObject.width,displayObject.height);
?? bitmapData.draw(displayObject,new Matrix());??
?? var jpg:JPEGEncoder = new JPEGEncoder();??
?? var ba:ByteArray = jpg.encode(bitmapData);??
?? return ba;
? }?
???
???
??]]>
?</fx:Script>
?
?
?<s:Panel id="myPanel" width="584" height="261">
??
??<s:Button x="156" y="104" label="导出图片" click="exportImg();"/>
?</s:Panel>
?
</s:Application>
?
?
Java 端的接收代码:
?
??String filePath = "c:/test.png";
??????? InputStream inputStream = request.getInputStream();
??????? FileOutputStream outputStream = new FileOutputStream(new File(filePath));
??????
??int formlength = request.getContentLength();
??byte[] formcontent = new byte[formlength];
??int totalread = 0;
??int nowread = 0;
??while (totalread < formlength) {
???nowread = inputStream.read(formcontent,totalread,formlength);
???totalread += nowread;
??}
??????? outputStream.write(formcontent); ??????? outputStream.flush(); ??????? outputStream.close(); ??????? inputStream.close();