java实现下载功能

//设置文件类型
public static String getContentType(String fileName) {   
			String fileNameTmp = fileName.toLowerCase();  
			String ret = "";  
			if (fileNameTmp.endsWith("txt")) {    
					ret = "text/plain";   
			}  
			if (fileNameTmp.endsWith("gif")) {   
					ret = "image/gif"; 
			}
			 if (fileNameTmp.endsWith("jpg")) {   
				 	ret = "image/jpeg";   
			} 
			 if (fileNameTmp.endsWith("jpeg")) {  
				 	ret = "image/jpeg";  
			}   
			 if (fileNameTmp.endsWith("jpe")) {  
				 	ret = "image/jpeg";   
			}   
			 if (fileNameTmp.endsWith("zip")) {
				 	ret = "application/zip";  
			}   
			 if (fileNameTmp.endsWith("rar")) { 
				 	ret = "application/rar";   
			}  
			 if (fileNameTmp.endsWith("doc")) {
				 	ret = "application/msword";  
			}   
			 if (fileNameTmp.endsWith("ppt")) { 
				 	ret = "application/vnd.ms-powerpoint";  
			}   
			 if (fileNameTmp.endsWith("xls")) {
				 	ret = "application/vnd.ms-excel";  
			}   
			 if (fileNameTmp.endsWith("html")) {   
				 	ret = "text/html";   
			}  
			 if (fileNameTmp.endsWith("htm")) { 
				 	ret = "text/html";   
			}   
			 if (fileNameTmp.endsWith("tif")) {
					ret = "image/tiff";   
			}  
			 if (fileNameTmp.endsWith("tiff")) {
				 	ret = "image/tiff";  
			} 
			 if (fileNameTmp.endsWith("pdf")) {    
				 	ret = "application/pdf";  
			}   
			 return ret;   
	} 
//下载部分
public static void fileDownLoad(HttpServletResponse response,String filePath) throws ServletException { BufferedInputStream bis = null; BufferedOutputStream bos = null; OutputStream fos = null; InputStream fis = null; String fileName = filePath.substring(filePath.lastIndexOf("/") + 1, filePath.length()); try { response.reset();response.setContentType(getContentType(fileName)); response.setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("gb2312"), "ISO8859-1")); fis = new FileInputStream(filePath); bis = new BufferedInputStream(fis); fos = response.getOutputStream(); bos = new BufferedOutputStream(fos); int bytesRead = 0; byte[] buffer = new byte[5 * 1024]; while ((bytesRead = bis.read(buffer)) != -1) { bos.write(buffer, 0, bytesRead);// 将文件发送到客户端 } bos.close(); bis.close(); fos.close(); fis.close(); } catch (IOException e) {response.reset(); e.printStackTrace(); } finally { try { if (fos != null) { fos.close(); } if (bos != null) { bos.close(); } if (fis != null) { fis.close(); } if (bis != null) { bis.close(); } } catch (IOException e) {System.err.print(e); } }}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值