標籤:
package com.caiex.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import org.apache.commons.io.IOUtils;import org.springframework.stereotype.Component;import com.caiex.exception.DownloadException;import com.caiex.global.Constants;/** * 檔案下載工具類 * * @author wsy * */@Componentpublic class FileOperateUtil { /** * * @param response * 響應對象 ,用於擷取輸出資料流 * @param fileName * 檔案名稱 * @throws DownloadException * 檔案不存在或者io異常時拋出此異常 */ public static void download(HttpServletResponse response, String fileName) throws DownloadException { String downLoadPath = Constants.XLS_DOWNLOAD_PATH + fileName; long fileLength = new File(downLoadPath).length(); response.setContentType("application/octet-stream"); try { response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1")); } catch (UnsupportedEncodingException e) { } response.setHeader("Content-Length", String.valueOf(fileLength)); FileInputStream fis = null; ServletOutputStream os = null; try { fis = new FileInputStream(downLoadPath); os = response.getOutputStream(); IOUtils.write(IOUtils.toByteArray(fis), os); } catch (FileNotFoundException e) { throw new DownloadException("檔案未找到"); } catch (IOException e) { throw new DownloadException("io異常"); } finally { IOUtils.closeQuietly(fis); IOUtils.closeQuietly(os); } }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
檔案下載工具類