国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

servlet實現文件下載、的實用類分享

2019-11-02 14:55:25
字體:
來源:轉載
供稿:網友

 servlet文件下載類,為了防止客戶端瀏覽器直接打開目標文件,在響應頭里加入強制下載的MIME類型,大家參考使用吧

 代碼如下:package com; import java.io.IOException;import java.io.PrintWriter;import java.net.URLEncoder;import java.util.Date; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory; import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeUtility;  /** * 文件下載類。為了防止客戶端瀏覽器直接打開目標文件(例如在裝了MS Office套件的Windows中的IE瀏覽器可能就會直接在IE瀏覽器中打開你想下載的doc或者xls文件),在響應頭里加入強制下載的MIME類型。 */public class DownloadFile extends HttpServlet { private static final Log log = LogFactory.getLog(DownloadFile.class);  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {  long timeStart = 0;  if(log.isDebugEnabled()){   timeStart=System.currentTimeMillis();  }  response.setContentType("application/x-download charset=UTF-8");  java.io.FileInputStream fis = null;  String filepath = request.getRealPath("");  javax.servlet.ServletOutputStream sos = null;  // System.out.println("DownloadFile filename:" + filename);  try {   if(request.getParameter("filename")==null     ||request.getParameter("showName")==null){    return;   }   String filename = request.getParameter("filename");   String showName = request.getParameter("showName");   request.setCharacterEncoding("UTF-8");   response.setCharacterEncoding("UTF-8");   java.io.File file = new java.io.File(filepath + filename);   if (!file.exists()) {    log.error(file.getAbsolutePath() + " 文件不存在!");    return;   }   // 讀取文件流   fis = new java.io.FileInputStream(file);   // 設置下載保存的文件名   sos = response.getOutputStream();   showName += filename.substring(filename.lastIndexOf("."));   String contentDisposition = "", browser = getBrowser(request);   if ("IE".equals(browser)) {    contentDisposition = "attachment; filename=" + URLEncoder.encode(showName, "UTF-8").replace("+", "%20");   } else if ("CH".equals(browser)) {    contentDisposition = "attachment; filename=" + MimeUtility.encodeText(showName, "UTF8", "B");   } else if ("SF".equals(browser)) {    contentDisposition = "attachment; filename=" + new String(showName.getBytes("UTF-8"), "ISO8859-1");   } else {    contentDisposition = "attachment; filename*=UTF-8''" + URLEncoder.encode(showName, "UTF-8").replace("+", "%20");   }   response.setHeader("
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垫江县| 信丰县| 白山市| 吴桥县| 南丰县| 阿拉善右旗| 灌云县| 迁西县| 岳阳县| 内江市| 大厂| 麻栗坡县| 望奎县| 罗山县| 天津市| 台东市| 孟连| 孝义市| 西吉县| 津南区| 比如县| 望都县| 盐边县| 本溪| 怀宁县| 正安县| 明星| 尼勒克县| 仁化县| 措美县| 漳州市| 嘉祥县| 海口市| 永泰县| 永嘉县| 万山特区| 泰安市| 衡南县| 荥经县| 岳阳县| 任丘市|