小菜毛毛技術(shù)分享

          與大家共同成長

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

          <%@ page import="java.io.File" %>
          <%@ page import="java.io.IOException" %>
          <%@ page import="java.io.OutputStream" %>
          <%@ page import="java.io.RandomAccessFile" %>
          <%!
              public void downloadFile(HttpServletRequest request, HttpServletResponse response, File file) throws IOException {

                  RandomAccessFile raf = new RandomAccessFile(file, "r");
                  java.io.FileInputStream fis = new java.io.FileInputStream(raf.getFD());
                  response.setHeader("Server", "www.trydone.com");
                  response.setHeader("Accept-Ranges", "bytes");
                  long pos = 0;
                  long len;
                  len = raf.length();
                  if (request.getHeader("Range") != null) {
                      response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
                      pos = Long.parseLong(request.getHeader("Range")
                              .replaceAll("bytes=", "")
                              .replaceAll("-", "")
                      );
                  }
                  response.setHeader("Content-Length", Long.toString(len - pos));
                  if (pos != 0) {
                      response.setHeader("Content-Range", new StringBuffer()
                              .append("bytes ")
                              .append(pos)
                              .append("-")
                              .append(Long.toString(len - 1))
                              .append("/")
                              .append(len)
                              .toString()
                      );
                  }
                  response.setContentType("application/octet-stream");
                  response.setHeader("Content-Disposition", new StringBuffer()
                          .append("attachment;filename=\"")
                          .append(file.getName())
                          .append("\"").toString());
                  raf.seek(pos);
                  byte[] b = new byte[2048];
                  int i;
                  OutputStream outs = response.getOutputStream();
                  while ((i = raf.read(b)) != -1) {
                      outs.write(b, 0, i);
                  }
                  raf.close();
                  fis.close();
              }

          %>
          <%
              String filePath = request.getParameter("file");
              filePath = application.getRealPath(filePath);
              File file = new File(filePath);
              downloadFile(request, response, file);
          %>

          posted on 2010-01-19 17:28 小菜毛毛 閱讀(880) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE相關(guān)技術(shù)與框架
          主站蜘蛛池模板: 定南县| 鄂尔多斯市| 峨边| 兰坪| 肥东县| 五峰| 乳山市| 虞城县| 清涧县| 武冈市| 藁城市| 佛冈县| 教育| 洮南市| 宣城市| 宜黄县| 安阳县| 云梦县| 枣阳市| 上饶市| 霍邱县| 都兰县| 始兴县| 甘南县| 洛扎县| 湖口县| 司法| 龙州县| 多伦县| 凭祥市| 商都县| 博爱县| 邻水| 紫阳县| 扎鲁特旗| 眉山市| 宁陕县| 云龙县| 和田市| 哈密市| 黎平县|