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 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页