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 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊