java文件下载(无法打开Internet站点.....)

小乞丐 发布于 2013/03/12 13:11
阅读 2K+
收藏 0

小弟近日做文件操作的一个功能,老是遇见一个问题百思不得其解~希望大家能帮忙分析分析~!

在jsp页面访问action下载文件。

//文件下载js脚本
function downfiles(fileId){
     document.getElementById("downFile").src = "${pageContext.request.contextPath}/space/downLoadFile/"+fileId;
}

文件下载代码

 /**
     * 文件下载
     * @param filePath
     * @param response
     */
    public static void downloadFile(String filePath,String fileName,HttpServletResponse response){  
          InputStream inputStream = null;
          OutputStream outputStream =null;
        try {  
            File file=new File(filePath);
            if(file!=null&&file.isFile()&&file.canRead()) {
                response.setCharacterEncoding("utf-8");  
               // response.setContentType("multipart/form-data");  
                //response.setContentType("application/x-msdownload");
                response.setContentType("application/vnd.openxmlformats");
                response.setHeader("Pragma","No-cache");
                response.setHeader("Cache-Control","no-cache");
                response.setDateHeader("Expires", 0);
                response.setHeader("Content-Disposition", "attachment;fileName="+new String(fileName.getBytes("GBK"),"iso8859-1"));  
                inputStream = new FileInputStream(file);
                outputStream = response.getOutputStream();  
                byte[] b=new byte[1024];  
                int length;  
                while((length=inputStream.read(b))>0){  
                    outputStream.write(b,0,length);  
                }  
              
            }
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally{
              try {
                  if(inputStream!=null){
                      inputStream.close();
                  }
                  if(outputStream !=null){
                      outputStream.close();
                  }
                      
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    } 

然后偶尔会出现如图错误!

加载中
0
JavaOlder
JavaOlder
我想要结合你的网络环境,这些都是在你本地操作么?
0
小乞丐
小乞丐
已经解决了~
懒人code
懒人code
能不能分享一下?
0
小乞丐
小乞丐
    在Header中加上:

                response.setHeader("Cache-Control","max-age=0");


就好了~


0
缘梦
缘梦

引用来自“小乞丐”的答案

    在Header中加上:

                response.setHeader("Cache-Control","max-age=0");


就好了~


 这个可以,不错,谢了!
返回顶部
顶部