Flex 端的上传代码:
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
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;
}
]]>
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();