Home » Flash相关 » 未分类 » AS3如何提取Loader加载的文件并上传到指定服务器

AS3如何提取Loader加载的文件并上传到指定服务器

最近研究页游加速器,其原理就是在玩家本地开启一个webServer,游戏客户端Loader把资源加载后,会把文件上传到本地webServer,以便玩家下次加载资源,直接从本地读取。体验端游一般的感觉。
bytes
1、二进制上传

总来来说就是模拟构造一个类似web Form表单上传文件的一组数据。具体代码请参考《AS3 下通过HTTP协议 实现Form方式实现二进制文件上传》http://blog.csdn.net/zttjhm/article/details/12831505 。友情提示:文章里面代码有几处拼写错误,比如“boundary”他给写成“boundry”,会导致服务服务器说没有文件上传的错误。

2、从Loader中提取真实文件的Bytes

远程资源文件被Loader从远程服务器加载到FlashPlayer后,会在原有的字节前面和尾部添加了一些额外的字节。如果直接获取myLoader.contentLoaderInfo.bytes,然后上传给服务器,服务器收到的文件要比原始的文件要大,且无法正常使用。

通过观察,发现同种类型的文件,增加的字节数是一致的。比如所有PNG图片增加的字节数都是62.

于是,我用一个二进制文件编辑器去对比原文件。通过二进制对比,可以发现某些类型的文件增加的字节码是一致,可以根据规律,对文件进行二进制进行还原。还原后再上传到指定服务器,进行存储。

    分享到: