FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端
生活随笔
收集整理的這篇文章主要介紹了
FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?有時候我們希望從FMS服務器上獲取指定的文件,再傳送到服務端進行操作。
由于是文件操作,客戶端我們很正常就會想到byteArray類,服務端使用File類。
另外~由于服務端必不支持ByteArray,我們需要把File讀取到的byte存為Array或拼成一串字符再傳給客戶端。
?
客戶端把Array或字符轉成byteArray再進行操作。
?
這個問題困我好幾天。感謝GOOGLE!感謝BAIDU!最感謝http://blog.l4cd.net!!!!
以下內容轉自 http://blog.l4cd.net
先看看服務端代碼
main.asc
代碼application.onConnect?=?function(client)
{
????client.getFile?=?function(filename)
????{
????????var?file?=?new?File("/"?+?filename);//打開文件
????????if(!file.name)return?"";
????????if(file.open("binary","read"))//以二進制讀取文件
????????{
????????????var?b?=?"";
????????????while(!file.eof())b?+=?file.readByte()+",";//把byte拼成字符
????????????file.close();//關閉文件
????????????return?b;
????????}
????????return?"";
????}
????application.acceptConnection(client);
}
客戶端代碼
代碼package
{
????import?flash.display.Sprite;
????import?flash.display.Loader;
????import?flash.net.NetConnection;
????import?flash.events.NetStatusEvent;
????import?flash.net.Responder;
????import?flash.utils.ByteArray;
?????
????public?class?FMSGetFileExample?extends?Sprite
????{
????????private?var?nc:NetConnection;
????????public?function?FMSGetFileExample()
????????{
????????????//連接
????????????nc?=?new?NetConnection();
????????????nc.connect("rtmp://localhost/file");
????????????nc.addEventListener(NetStatusEvent.NET_STATUS,?netStatusHandler);
????????}
?
????????private?function?netStatusHandler(e:NetStatusEvent):void
????????{
????????????switch?(e.info.code)
????????????{
????????????????case?"NetConnection.Connect.Success"?:
????????????????????//Call服務端getFile方法,獲取文件名為"image.jpg"的文件
????????????????????nc.call("getFile",?new?Responder(showFile),?"image.jpg");
????????????????????break;
????????????????case?"NetConnection.Connect.Rejected"?:
????????????????case?"NetConnection.Connect.Failed"?:
????????????????????trace("connect?error");
????????????????????break;
????????????}
????????}
????????private?function?showFile(file:String):void
????????{
????????????if(!file)
????????????{
????????????????trace("get?file?error");
????????????????return
????????????}
????????????var?byte:ByteArray?=?new?ByteArray();
????????????var?rs:Array?=?file.split(",");
????????????//字符轉為byteArray;
????????????while(rs.length)
????????????{
????????????????byte.writeByte(rs.shift());//刪除數組中第一個元素,并返回該元素。
????????????}
????????????byte.position?=?0;//將文件指針的當前位置(以字節為單位)移動或返回到?ByteArray?對象中。?下一次調用讀取方法時將在此位置開始讀取,或者下一次調用寫入方法時將在此位置開始寫入。
????????????//顯示
????????????var?loader:Loader?=?new?Loader();
????????????addChild(loader);
????????????loader.loadBytes(byte);
????????}
????}
}
?
轉載于:https://www.cnblogs.com/skyblue/archive/2009/11/30/1613865.html
總結
以上是生活随笔為你收集整理的FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC专题研究(三)——数据绑定和传送
- 下一篇: ROCK 音乐