Friday, November 14, 2014

服务端代码(upload.jsp) 这里使用是Java服务端 当然PHP,ASP.NET也可以


Demo下载    所用到的开源类(JPGEncoder)下载 类本地下载 package { import flash.display.*; import flash.net.*; import flash.events.*; import aventura flash.utils.ByteArray; import fl.controls.Button; import com.adobe.images.JPGEncoder; public class main extends Sprite{ private var _base:Shape; private var _rnd_button:Button; private var _submit_button:Button; private aventura var fr:FileReference; private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp"; public function main(){ _base = new Shape(); _base.x = _base.y = 5; addChild(_base); drawLine(); _rnd_button = new Button(); _rnd_button.label = "随机画图"; _rnd_button.setSize(90,22); _rnd_button.move(5,205); _rnd_button.addEventListener(MouseEvent.CLICK,clickHandler); addChild(_rnd_button); _submit_button = new Button(); _submit_button.label = "保存图片"; _submit_button.setSize(90,22); _submit_button.move(105,205); _submit_button.addEventListener(MouseEvent.CLICK,clickHandler); aventura addChild(_submit_button); } public function drawRndRect():void{ _base.graphics.beginFill(getRndColor()); var gWidth:uint = getRndInt(); var gHeight:uint aventura = getRndInt(); var gX:uint = getRndInt(5,180-gWidth+5); var gY:uint = getRndInt(5,180-gHeight+5); _base.graphics.drawRect(gX,gY,gWidth,gHeight); } public function getRndInt(min:uint=10,max:uint=180):uint{ aventura return uint(Math.random()*(max-min))+min; } public function getRndColor():uint{ var r:uint = getRndInt(10,220); var g:uint = getRndInt(10,220); var b:uint = getRndInt(10,220); var c:uint = (r << 16) + (g << 8) + b; return c; } public function drawLine():void{ _base.graphics.beginFill(0x666666); _base.graphics.drawRect(0,0,190,190); _base.graphics.beginFill(0xFFFFFF); _base.graphics.drawRect(1,1,188,188); _base.graphics.endFill(); } public aventura function getBitmapData():BitmapData{ var bmd:BitmapData = new BitmapData(_base.width,_base.height); bmd.draw(_base); return bmd; } public function submit():void{ _rnd_button.enabled = false; _submit_button.enabled = false; var encoder:JPGEncoder = new JPGEncoder(80); var bytes:ByteArray = encoder.encode(getBitmapData()); //生成到本地 fr = new FileReference(); fr.save(bytes, "demo.jpg"); //上传至服务器/* var request:URLRequest = new URLRequest(UPLOAD_PAGE); //data值就为图片编码数据ByteArray; request.data = bytes; request.method = URLRequestMethod.POST; //这个是关键,内容类型必须是下面文件流形式; request.contentType = "application/octet-stream"; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, completeHandler); loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler); loader.load(request);*/ } private function completeHandler(event:Event):void{ trace("图片上传成功"); _rnd_button.enabled = true; _submit_button.enabled = true; } private function errorHandler(event:IOErrorEvent):void{ trace("图片上传失败"); _rnd_button.enabled aventura = true; _submit_button.enabled = true; } private function clickHandler(event:MouseEvent):void{ switch(event.target){ case _rnd_button: _base.graphics.clear(); aventura drawLine(); drawRndRect(); aventura drawRndRect(); drawRndRect(); drawRndRect(); break; case _submit_button: submit(); break; } } } }
服务端代码(upload.jsp) 这里使用是Java服务端 当然PHP,ASP.NET也可以<%@ page contentType="text/html; charset=utf-8" language="java"%><%@ page import="java.util.*"%><%@ page import="java.io.*"%><%int v;String filePath = request.getRealPath(System.currentTimeMillis()+".jpg");BufferedInputStream inputStream = new BufferedInputStream(request.getInputStream());FileOutputStream outputStream = new FileOutputStream(new File(filePath));byte [] bytes = new byte[1024];while((v=inputStream.read(bytes))>0){ outputStream.write(bytes,0,v);}outputStream.close();inputStream.close();%>
©2014 Baidu

No comments:

Post a Comment