javaweb实现附件下载 如:txt,png,jpg等
javaweb实现附件下载 如:txt,png,jpg等
菜鸟来了 发表于6个月前
javaweb实现附件下载 如:txt,png,jpg等
  • 发表于 6个月前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 代码未优化。 参考:http://www.cnblogs.com/h--d/p/5761649.html
/**
	 * springMVC文件下载 (txt,png等格式)
	 * @param request
	 * @param response
	 * @throws Exception 
	 * @throws UnsupportedEncodingException 
	 */
	@RequestMapping(params="method=downloadFile",method=RequestMethod.GET)
	public void downloadFile(HttpServletRequest request,HttpServletResponse response) throws Exception{
		ServletContext sc  = request.getSession().getServletContext();
		String path = request.getParameter("path");
		String fileName = request.getParameter("fileName");
		if(!fileName.contains(".")){
			if(StringUtils.isNotBlank(path)){
				fileName= fileName+"." +path.split("\\u002E")[1];
			}
		}
		String filePath =sc.getRealPath(path);
		File file =  new File(filePath);
		if(!file.exists()){
			throw new Exception("文件不存在!");
		}
		try {
			FileInputStream in = new FileInputStream(file);
			response.setHeader("content-disposition", "attachment;filename=" +URLEncoder.encode(fileName, "UTF-8"));
			OutputStream out =response.getOutputStream();
			byte buffer[] = new byte[1024];
			int len = 0;
			while((len=in.read(buffer))>0){
				out.write(buffer, 0, len);
			}
			//关闭文件输入流
			in.close();
			//关闭输出流
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

注意事项:

1,ajax请求无效。

标签: 文件下载 javaweb
共有 人打赏支持
粉丝 4
博文 42
码字总数 8532
×
菜鸟来了
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: