FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端
发布时间:2020-12-15 17:42:10 所属栏目:百科 来源:网络整理
导读:有时候我们希望从FMS服务器上获取指定的文件,再传送到服务端进行操作。 由于是文件操作,客户端我们很正常就会想到byteArray类,服务端使用File类。 另外~由于服务端必不支持ByteArray,我们需要把File读取到的byte存为Array或拼成一串字符再传给客户端。 ? 客
有时候我们希望从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? (filename) ????{ ???????? var ?file? new ?File( " / + ?filename); // 打开文件 ???????? if ( ! file.name) return "" ; ???????? (file.open( binary , read )) 以二进制读取文件 ????????{ ???????????? ?b? ; ???????????? while file.eof())b? += ?file.readByte() ; 把byte拼成字符 ????????????file.close(); 关闭文件 ???????????? ?b; ????????} ???????? ; ????} ????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? ?nc:NetConnection; ????????public? ?FMSGetFileExample() ????????{ ???????????? 连接 ????????????nc? ?NetConnection(); ????????????nc.connect( rtmp://localhost/file ); ????????????nc.addEventListener(NetStatusEvent.NET_STATUS,?netStatusHandler); ????????} ? ????????private? ?netStatusHandler(e:NetStatusEvent): void ????????{ ???????????? switch ?(e.info.code) ????????????{ ???????????????? case NetConnection.Connect.Success ?: ???????????????????? Call服务端getFile方法,获取文件名为"image.jpg"的文件 ????????????????????nc.call( getFile ?Responder(showFile),0); line-height:1.5!important">image.jpg ); ???????????????????? break ; ???????????????? NetConnection.Connect.Rejected ?: ???????????????? NetConnection.Connect.Failed ?: ????????????????????trace( connect?error ; ????????????} ????????} ????????private? ?showFile(file:String): file) ????????????{ ????????????????trace( get?file?error ); ???????????????? ????????????} ???????????? byte :ByteArray? ?ByteArray(); ???????????? ?rs:Array? ?file.split( ); ???????????? 字符转为byteArray; (rs.length) ????????????{ ???????????????? .writeByte(rs.shift()); 删除数组中第一个元素,并返回该元素。 ????????????} ???????????? .position? 0 将文件指针的当前位置(以字节为单位)移动或返回到?ByteArray?对象中。?下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。 显示 ?loader:Loader? ?Loader(); ????????????addChild(loader); ????????????loader.loadBytes( ); ????????} ????} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读