czw333 2009-04-28 11:46
浏览 217
已采纳

Flex 中下载文件如何得到文件名

目标文件在服务器端生成,文件名不确定。
[b]问题:[/b]下载文件时要求保持服务器生成的文件名不变,在Flex端下载时如何得到这个文件名呢?(默认情况下它会显示servlet的名字)
[b]问题补充:[/b]
[quote]服务器端是java的么,用response.setHeader("filename",你想要的名字)试试[/quote]
谢谢回答这个问题的仁兄,我的是java写的,也设置了这个header,问题是Flex不认这个,它是在文件真正开始下载前就要提示用户选择保存位置的。我在Flex端用的是FileReference这个类。
[b]问题补充:[/b]
我现在的做法是用navigateToURL(new URLRequest("servlet?id=123"),"_blank");来做的.
还没有在FileReference中找到相应的办法,它只对请求的是已经存在的文件有作用,比如:http://www.xx.com/aa.zip,这样可以保存成aa.zip,或者是重命名,但对于动态生成的文件就无能为力了.
我想这样说,大家更能明白我的意思了吧?
[b]问题补充:[/b]
[quote]...我建议REST的方法你可以试试
即用urlrewriter,把servlet?id=11&name=aa.zip改为
http://xxx/downfileServlet/aa.zip?id=11
这样flex解析url是aa.zip,而你的filter能解析出id=11 [/quote]

非常感谢这位仁兄,你说的这个方式我还真没想过。不过,我这里的文件名是根据条件生成的,是动态的,而serlvet配置又不允许/servlet/*.zip这样的语法,所以...

  • 写回答

3条回答 默认 最新

  • xiaozhen 2009-05-06 15:19
    关注

    不一定非要是/server/*.zip,可以是任意目录下,只要你配置好

    <servlet>
        <servlet-name>yourdownfileServlet</servlet-name>
        <servlet-class>
            net.com.your.servlet
        </servlet-class>
    </servlet>
    


    yourdownfileServlet
    /downabcdxyz/*

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码