论坛首页 入门技术论坛

servlet文件下载

浏览 5583 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-21  
response.setCharacterEncoding("GBK");
		ServletOutputStream out1 = response.getOutputStream();
		int act = Integer.parseInt(request.getParameter("act"));
		String filename="";
		if(act==1)filename="1.rar";
		else if(act==2)filename="2.rar";
		else if(act==3)filename="3.rar";
		else filename="c.rar";
		

		File file2 = new File("d:\\"+filename);
		if (!file2.exists()) {
			response.setContentType("application/x-download");
			out1.print("file doesn't exist");
			return;
		}else {
			response.setHeader("Content-Disposition",
					"attachment; filename=default\"" + "zip"  + "\"");
			filename=filename.substring(filename.lastIndexOf("\\"));
			response.setHeader("Content-Disposition", "attachment; filename=\""
					+ filename + "\"");
		}

		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		try {
			bis = new BufferedInputStream(new FileInputStream(file2));
			bos = new BufferedOutputStream(out1);
			byte[] buff = new byte[2048];
			int bytesRead;
			while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
				bos.write(buff, 0, bytesRead);
			}
		} catch (IOException e) {
			throw e;
		} finally {
			if (bis != null)
				bis.close();
			if (bos != null)
				bos.close();
		}
 
   发表时间:2009-09-21  
   一部800MB电影就不行了.....
0 请登录后投票
   发表时间:2009-09-24  
myworkfirst 写道
   一部800MB电影就不行了.....

嗯,才学的,教我写个好的的嘛!
0 请登录后投票
   发表时间:2009-10-06  
response.getOutputStream()可以用flush(),让response缓存在客户端,这样不会造成客户端内存不足。response是可以用flush缓存到客户端的。
0 请登录后投票
   发表时间:2009-10-07  
??????
0 请登录后投票
   发表时间:2009-10-10  
zhwj184 写道
response.getOutputStream()可以用flush(),让response缓存在客户端,这样不会造成客户端内存不足。response是可以用flush缓存到客户端的。
嗯,谢谢
0 请登录后投票
   发表时间:2010-04-04  
来学习的 LZ写的很不错
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics