网页文件下载

前台 jsp 
function downVideo(value,row,index){
 return '<a href="<%=basePath%>admin/video/video!fileDown.ds?uname='+row.uname+'&filepath='+value+'">下载</a>';
}
后台java :
action:
 public void fileDown() {
   FileUtil.download(filepath, getRequest().getParameter("uname")+filepath.substring(filepath.lastIndexOf("."),filepath.length()), getResponse());
  }
FileUtil:
public static void download(String filepath, String filename, HttpServletResponse response) {
        response.setContentType("application/x-download;charset=utf-8");
        OutputStream outp = null;
        FileInputStream in = null;
        try {
            response.addHeader("Content-Disposition", "attachment;filename="+new String(filename.getBytes("gbk"),"ISO-8859-1"));
         
            in = new FileInputStream(ServletActionContext.getServletContext().getRealPath("/")+filepath);
            outp = response.getOutputStream();
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        byte[] b = new byte[1024];
        int i = 0;
        try {
            while ((i = in.read(b, 0, 1024)) != -1) {
                outp.write(b, 0, i);
                outp.flush();
            }
         
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                in = null;
            }
            if (outp != null) {
                outp = null;
            }
        }
    }
 
原文地址:https://www.cnblogs.com/loveweiwei/p/4135453.html