posts - 22,comments - 35,trackbacks - 0

          <%@ page import="java.io.*"%>
          <%
          String root=application.getRealPath("/");
          String fileName=request.getParameter("fileName");
          String filePath=request.getParameter("filePath");

          response.setContentType("application/octet-stream");
          response.setHeader("Content-Disposition",
          "attachment; filename=\"" +fileName+ "\"");

          try{
          java.io.OutputStream os = response.getOutputStream(); //不加此行將只能下載文本文件.下載jpg等就會出現打不開的現象.
          java.io.FileInputStream fis = new java.io.FileInputStream(root+filePath);
          byte[] b = new byte[1024];
          int i = 0;
          while ( (i = fis.read(b)) > 0 )
          {
          os.write(b, 0, i);
          }

          fis.close();
          os.flush();
          os.close();
          }
          catch ( Exception e )
          {
          System.out.println ( "IOException." + e );
          }
          %>

          java.io.FileInputStream fis = new java.io.FileInputStream(文件的真實路徑);
          也可以

          <%
          if (request.getParameter("fileUrl") != null)
          {
          String strFileUrl = request.getParameter("fileUrl");

          //獲取文件名(DealFile是自己寫的一個處理文件的一個類)
          DealFile dealFile = new DealFile(strFileUrl);
          String filename = dealFile.getFileName();

          response.setHeader("content-type","application/octet-stream");
          response.setHeader("Content-Disposition","attachment;filename=\""+ filename+"\"");

          BufferedInputStream bis = null;
          BufferedOutputStream bos = null;
          try
          {
          //從文件所在目錄以流的方式讀取文件
          bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath(strFileUrl)));

          bos = new BufferedOutputStream(response.getOutputStream());

          byte[] buff = new byte[2048];
          int bytesRead;

          while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
          {
          bos.write(buff,0,bytesRead);
          }
          bos.flush();
          }
          catch(final IOException e)
          {
          System.out.println ( "IOException." + e );
          }
          finally
          {
          if (bis != null)
          bis.close();
          if (bos != null)
          bos.close();
          }
          return;
          }
          %>

          posted on 2006-04-14 16:04 kelven 閱讀(1474) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 英德市| 张掖市| 洛宁县| 南雄市| 鲁山县| 清水河县| 梁河县| 溧水县| 尼玛县| 龙胜| 抚松县| 金堂县| 吴旗县| 江都市| 赤壁市| 潼关县| 贵州省| 常宁市| 崇仁县| 墨竹工卡县| 莱芜市| 大邑县| 都昌县| 临江市| 读书| 沐川县| 福清市| 桃园市| 原阳县| 赤城县| 攀枝花市| 祁门县| 泾川县| 如皋市| 蒲江县| 静海县| 卢湾区| 远安县| 邵东县| 林芝县| 砚山县|