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下载导出文件的方法有很多,不明白再问吧。

private const FILE_URL:String = "http://localhost:8080/FileUploaded/"你把File_URL定义成常量了

改:

再定义个变量 FileNameT

FileNameT=FIE_RUL &"main.zip" 这个Main.zip 值需要你在DataGrid的CLick事件中加入

dataGrid 中单击的时候 拼接FileUrl字符串

private const FILE_URL:String = "http://localhost:8080/FileUploaded/main.zip"

private var fileRef:FileReference

private var urlReq:URLRequest

private function init():void {

arrColl = new ArrayCollection()

urlReq = new URLRequest(FileNameT)

fileRef = new FileReference()

}

private function downloadSourceCodeZip():void {

init()

fileRef.download(urlReq)

}

SDK是不用安装的,直接解压就行了。

在Flash

Builder里面设置SDK路径就可以了。

window->preferences->Flash

Builder->Installed

Flex

SDKs

接下来自己就知道该怎么做了。


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

原文地址: https://outofmemory.cn/tougao/12066101.html

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

发表评论

登录后才能评论

评论列表(0条)

保存