从服务器下载文件到本地

第一种方法: /** * 下载文件到本地 * @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 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(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); }

Content-Disposition属性有两种类型:inline 和 attachment
inline :将文件内容直接显示在页面
attachment:弹出对话框,让用户下载
【从服务器下载文件到本地】欢迎关注我的微信公众号,会同步更新python、java、算法等相关内容!!!
从服务器下载文件到本地
文章图片

    推荐阅读