第一种方法:
/*** 下载文件到本地* @param filePathArr path 文件路径* fileName 文件名* @param response* @throws IOException*/public static void download(String[] filePathArr, HttpServletResponse response) throws IOException {File file = new File(filePathArr[0]+"\\"+filePathArr[1]);response.setContentType("application/octet-stream");response.setHeader("Content-disposition","attachment;fileName="+ URLEncoder.encode(filePathArr[1],"UTF-8"));BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());byte[] buff = new byte[2048];while(true){int bytesRead;if(-1 == (bytesRead = bis.read(buff))) break;bos.write(buff,0,bytesRead);}bis.close();bos.close();}
第二种方法:
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;public static ResponseEntity<byte[]> download(String[] filePathArr, HttpServletResponse response) throws IOException {File file = new File(filePathArr[0]+"\\"+filePathArr[1]);HttpHeaders headers = new HttpHeaders();headers.setContentDispositionFormData("attachment", new String(filePathArr[1].getBytes("UTF-8"),"iso-8859-1"));//application/octet-stream : 二进制流数据(最常见的文件下载headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}
Content-Disposition属性有两种类型:inline 和 attachment
inline :将文件内容直接显示在页面
attachment:弹出对话框,让用户下载
欢迎关注我的微信公众号,会同步更新python、java、算法等相关内容!!!