SSM框架-------------获取本地图片接口

本文介绍了一种在项目中实现用户照片下载需求的方法。通过使用Java的Servlet API,该接口能够从本地读取已存储的图片,并将其发送到前端进行展示。文章详细展示了如何设置HTTP响应头以正确处理文件名编码,以及如何使用流来读取和写入文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目遇到添加用户时,添加用户照片的需求。在展示列表的时候,需要从本地读取已存的图片,并在前端展示出来,下面直接给出接口:

 @RequestMapping("downloadFile.do")
		  public static void download(HttpServletRequest request,  
		      HttpServletResponse response, String storeName
		       ) throws Exception {  
		    
		    request.setCharacterEncoding("UTF-8");  
		    BufferedInputStream bis = null;  
		    BufferedOutputStream bos = null;  
		   			
		    //获取下载文件路径
		    String downLoadPath = "";
		 		
		 	downLoadPath = "D:\\upload\\image\\"+ storeName;  		  
		    //获取文件的长度  
		    long fileLength = new File(downLoadPath).length();  

		    //设置文件输出类型
		    response.setContentType("application/octet-stream");  
		    response.setHeader("Content-disposition", "attachment; filename="  
		        + new String(storeName.getBytes("utf-8"), "ISO8859-1")); 
		    //设置输出长度
		    response.setHeader("Content-Length", String.valueOf(fileLength));  
		    //获取输入流
		    bis = new BufferedInputStream(new FileInputStream(downLoadPath));  
		    //输出流
		    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);  
		    }  	
		    //关闭流
		    bis.close();  
		    bos.close();  
		  } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值