1、利用fileRef.save(data,filename+".zip")下载文件,
/**导出面板图片的例子ui:Panel**/
var bitmapData : BitmapData = new BitmapData(ui.width, ui.height)
bitmapData.draw(ui)
var jpgByteArray : ByteArray = new JPEGEncoder(90).encode(bitmapData)
fileRef.save(jpgByteArray ,"图片.jpg")
2、encodeURI(url) ,fielReference调用download方法下载时加一个中文名参数
/** backUrl: 后台服务器地址
* pathFileName: 下载的文件路径+文件名
* */
var fileNameArr:Array=StringUtil.trim(pathFileName).split('/')
var decodeName=fileNameArr[fileNameArr.length-1] //截取文件名
var url:String=backUrl+pathFileName
var download_request:URLRequest=new URLRequest(encodeURI(StringUtil.trim(url))) fileRef.download(download_request,decodeName) //下载文件并加入默认文件名
flex下载导出文件的方法有很多,不明白再问吧。
FLEX提供了RSL(runtime shared library)(相当于运行共享库),让用户只需要下载相同版本的框架文件一次,然后存在FlashPlayer指定的cache目录中..
当下次再浏览应用了RSL的FLEX项目时,就不需要重新下载.从而可以加快加载速度.
大概 *** 作:
1.在项目文件夹中点右建,选择"properties"-"Flex BuildPath"-"Library Path"
2.该选项卡上我们看到"FrameWork linkage",默认是选中"Merged into cdoe"(打包在里边..大概这意思)
3.点开下拉,选择"runtime shared library(RSL)",点"OK"
你的swf的数量这么大,肯定用RSL比较好,把公共部分的框架做成共享库,这样远程调用时只有下载一次
关于你问的体积的问题:
FLEX生成一个空的框架,一般文件都在500K以上
用了RSL之后,每个空的小文件大概只包括5个不到组建,大概30~50K
网盘上传原理:上传到网盘的每个文件,服务器都会校验MD5码。如果这个您上传的文件MD5码与已经存在于服务器里的文件的MD5码相同的话,网盘服务器将会判断成为重复文件,只需要复制副本保存在网盘上即可,无需重新保存,因为有过这个文件,于是很快完成上传任务,并在有人需要下载的时候将原有的该文件的下载地址放出。这样实现了服务器的高效运作。
网盘下载原理:
网盘会收集互联网上的所有下载地址和装了当前电脑的资料.
1.其实收集互联网上的服务器的下载地址,很多软件都会这样做.如网际快车等,但网际快车不会收集在下载地址里包涵了用户名和密码的下载地址,为什么?因为网际快车的程序员知道,下载地址里有用户名和密码,就是不想让所有人都使用.但迅雷的程序员可不理你,一样收集,然后供其它人使用.说白了,就是我们站长最恨的"盗链".
例:包涵用户名的下载地:ftp://Thund:Issue@202.154.123.218/0718/世界大战.rmvb
这个下载地址里的Thund:Issue就是用户名和密码了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)