加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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(
);
????????}
????}

}

复制代码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读