本篇文章給大家分享的是有關(guān)JavaWeb項(xiàng)目中怎么實(shí)現(xiàn)一個(gè)文件壓縮下載功能,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
沅江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!實(shí)現(xiàn)思路有兩種:
一是將所有文件先打包壓縮為一個(gè)文件,然后下載這個(gè)壓縮包,
二是一邊壓縮一邊下載,將多個(gè)文件逐一寫入到壓縮文件中。
代碼實(shí)現(xiàn):
FileBean
public class FileBean implements Serializable { private Integer fileId;// 主鍵 private String filePath;// 文件保存路徑 private String fileName;// 文件保存名稱 public FileBean() { } public Integer getFileId() { return fileId; } public void setFileId(Integer fileId) { this.fileId = fileId; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } }
控制層:
@RequestMapping(value = "/download", method = RequestMethod.GET) public String download(String id, HttpServletRequest request, HttpServletResponse response) throws IOException { String str = ""; if (id != null && id.length() != 0) { int index = id.indexOf("="); str = id.substring(index + 1); String[] ids = str.split(","); ArrayListfileList = new ArrayList (); for (int i = 0; i < ids.length; i++) {// 根據(jù)id查找genericFileUpload,得到文件路徑以及文件名 GenericFileUpload genericFileUpload = new GenericFileUpload(); genericFileUpload = genericFileUploadService.find(Long.parseLong(ids[i])); FileBean file = new FileBean(); file.setFileName(genericFileUpload.getFileName()); file.setFilePath(genericFileUpload.getFilePath()); fileList.add(file); } //設(shè)置壓縮包的名字 //解決不同瀏覽器壓縮包名字含有中文時(shí)亂碼的問題 String zipName = "download.zip"; response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", "attachment; filename="+ zipName); //設(shè)置壓縮流:直接寫入response,實(shí)現(xiàn)邊壓縮邊下載 ZipOutputStream zipos =null; try{ zipos=new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); zipos.setMethod(ZipOutputStream.DEFLATED);//設(shè)置壓縮方法 }catch(Exception e){ e.printStackTrace(); } DataOutputStream os=null; //循環(huán)將文件寫入壓縮流 for(int i=0;i 以上就是JavaWeb項(xiàng)目中怎么實(shí)現(xiàn)一個(gè)文件壓縮下載功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:JavaWeb項(xiàng)目中怎么實(shí)現(xiàn)一個(gè)文件壓縮下載功能-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/ccpsph.html