springMVC固定文件名下载
来源:互联网 发布:g92内螺纹编程实例 编辑:程序博客网 时间:2024/05/16 14:03
jsp页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>单个文件下载</title></head><body><h1>单个文件下载</h1><a href="download.html?fileName=img1-lg.jpg">img1-lg.jpg</a></body></html>Controller层
package lesson5.com.jkxy.springmvc.controller;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;@Controllerpublic class DownloadController {//@RequestParam String fileName,@RequestMapping("/download")public String download(HttpServletRequest request,HttpServletResponse response){response.setContentType("text/html;charset=utf-8");try {request.setCharacterEncoding("UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}String fileName = request.getParameter("fileName");//设置输入流和输出流BufferedInputStream bis = null;BufferedOutputStream bos = null;//获得上传文件的路径String ctxPath = request.getSession().getServletContext().getRealPath("/")+"upload/";String downloadPath = ctxPath + fileName;System.out.println(downloadPath);try {//获取文件的长度long fileLength = new File(downloadPath).length();//设置头信息response.setContentType("application/x-msdownload");response.setHeader("Content-Length", String.valueOf(fileLength));response.setHeader("Content-disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"ISO8859-1"));bis = new BufferedInputStream(new FileInputStream(downloadPath));bos = new BufferedOutputStream(response.getOutputStream());byte[] buff = new byte[4096];int bytesRead;while((bytesRead = bis.read(buff, 0, buff.length)) !=-1){bos.write(buff,0,bytesRead);}} catch (Exception e) {}finally{if(bis != null){try {bis.close();} catch (IOException e) {e.printStackTrace();}}if(bos != null){try {bos.close();} catch (IOException e) {e.printStackTrace();}}}return null;}}
阅读全文
0 0
- springMVC固定文件名下载
- struts2--文件名固定下载
- springmvc文件下载之文件名下划线问题终极解决方案
- 下载 改变 文件名
- 下载文件名出现乱码
- 解决下载文件名乱码
- struts2下载文件名乱码
- 下载文件名乱码
- browser下载文件名乱码
- wget 下载 保存文件名
- Safari下载文件名乱码
- java下载文件名乱码
- java下载,文件名乱码
- sendRedirect下载文件名乱码
- c++读取固定路径下的文件名
- SpringMVC 下载
- SpringMVC下载
- springMVC下载
- 个人记录-css重置表
- 学习python之积累别人的好东西
- Eyepetizer-in-Kotlin:一款简约的小视频app,带你走进kotlin
- 《reinforcement learning:an introduction》第三章《Finite Markov Decision Processes》总结
- 解决Line XX:StartTag:invalid element Name问题
- springMVC固定文件名下载
- 剖析——SGI版本下的空间配置器
- [Leetcode] 289. Game of Life 解题报告
- 套接字网络编程基础(四)
- zTree应用实例详讲(1)
- vuex 小结
- rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较
- Spark streaming + kafka 运行时报 Too many open files错误的解决方法
- 从菜鸟到入门(三)- 文档撰写