flex 使用fileReference.download()无法下载中文名文件!

flex 使用fileReference.download()无法下载中文名文件!,第1张

简单介绍两种方法

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:[email protected]/0718/世界大战.rmvb

这个下载地址里的Thund:Issue就是用户名和密码了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/tougao/8102311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存