老问题了,就是要出现下载框而不是直接用IE打开。有个帖子说,把mime改成非text/plain就可以,为什么我试了却没有效果?另外,我没有采用response.setHeader的方法,因为我点击一个链接要同时下载几个文件,这样好像只能输出一个文件?我目前是在a href 里面连用几个window.open来实现的,寻求解决办法!

解决方案 »

  1.   

    response.setContentType("text/plain");
    response.setHeader("Content-Disposition", "attachment;filename=xxx");就可以。建议代码写到Servlet而不是jsp中。
      

  2.   

    如果你要同时下载几个文件,最简单就是你自己在服务器上面压缩成一个zip包再下载又或者同时window.open打开多个页面就可以
      

  3.   

    <iframe id="frame1" style="display:none"></iframe>
    <script>
    var n=0;
    function go(url){
        
        n==0?new function()
        {
            frames("frame1").location=url,n=1
        }:null;
        
        document.all("frame1").readyState!="complete"?setTimeout(go,10):so();
        
        function so()
        {
            frames("frame1").document.execCommand("SaveAs"),n=0
        };
    }</script><a name="aa" onClick="go('key/test.txt')"  style="cursor:pointer"  >abc</a>
      

  4.   

    不可以打包,这是死条件,否则也用不着弄的这么复杂了。你说的好像还是没有解决我的问题啊,response.setContentType("text/plain");的方法,只能打开一个文件。是不是真的实现不了了。
      

  5.   

    saveas行不通,再出现保持框的同时,还是会弹出IE窗口。
      

  6.   

    同时window.open打开多个页面
    至于你说的再出现保持框的同时,还是会弹出IE窗口,这个问题
    你就不能让它输出完成的时候,关闭窗口吗?
    应该可以实现的吧??
      

  7.   

    你想怎么样的用户体验?如果下载多个文件,总需要问用户多次保存位置吧?如果你只想问个目录名称,然后全部存入这个目录中,最好的方式就只有OCX了,否则除非是IE有漏洞,否则是不可能的。