用servlet实现文件下载
来源:互联网 发布:ubuntu 17.04 iso下载 编辑:程序博客网 时间:2024/05/29 12:07
- public class FileDownLoadSevrlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
-
- protected void doGet(HttpServletRequest request,
- HttpServletResponse response) {
- try {
- request.setCharacterEncoding("UTF-8");
- } catch (UnsupportedEncodingException e1) {
- e1.printStackTrace();
- }
- String oldTemplateName = request.getParameter("palatename");
- String fileName = null;
- String dir = null;
- File file = null;
- ITemplateManager iTemplateManager = TemplateManagerImpl.getInstance();
- String templatename = null;
- if (oldTemplateName != null) {
- try {
- templatename = new String(oldTemplateName
- .getBytes("ISO-8859-1"), "UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- String tempPath = iTemplateManager.getTemplatePath();
-
- if (templatename.contains(File.separator)) {
- fileName = templatename.substring(templatename
- .lastIndexOf(File.separator) + 1);
- if (templatename.contains("templates")) {
- dir = templatename.substring(templatename
- .indexOf("templates") + 10, templatename
- .lastIndexOf(File.separator))
- + "";
- } else {
- dir = templatename.substring(0, templatename
- .lastIndexOf(File.separator))
- + "";
- }
- } else {
- fileName = templatename;
- dir = "";
- }
- try {
- file = iTemplateManager.downloadTemplate(fileName, tempPath
- + File.separator + dir);
- } catch (ReportException e) {
- e.printStackTrace();
- }
-
-
- response.setContentType("textml;charset=UTF-8");
- response.setContentType("application/x-msdownload;charset=UTF-8");
- response.setHeader("Content-Disposition", "attachment; filename=\""
- + fileName + "\"");
- FileReader fileReader = null;
- BufferedReader reader = null;
- BufferedWriter writer = null;
- try {
- fileReader = new FileReader(file.toString());
- reader = new BufferedReader(new FileReader(file.toString()));
- writer = new BufferedWriter(response.getWriter());
- String line = null;
- while ((line = reader.readLine()) != null) {
- writer.write(line);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (fileReader != null)
- try {
- fileReader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (reader != null)
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (writer != null)
- try {
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }