/**
*下载文件
*
* @return
*/
@RequestMapping(params = "downloadFile")
public void downloadFile(HttpServletRequest request,HttpServletResponse response)throws IOException{
try{
response.setContentType("application/octet-stream;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
String multimediaEntityId = request.getParameter("multimediaEntityId");
if(StringUtil.isNotEmpty(multimediaEntityId)){
MultimediaEntity multimediaEntity =systemService.getEntity(MultimediaEntity.class, multimediaEntityId);
if(oConvertUtils.isNotEmpty(multimediaEntity)){
String fileName = multimediaEntity.getMediaName();
String ctxPath = request.getServletContext().getRealPath("/")+ multimediaEntity.getOriginalUrl().replace("/", "\\");
long fileLength = new File(ctxPath).length();
if(fileLength>0){
// 根据浏览器进行转码,并且命名ppt文件的名字
if (BrowserUtils.isIE(request)) {
response.setHeader(
"content-disposition",
"attachment;filename="
+ java.net.URLEncoder.encode(fileName,"UTF-8"));
} else {
String newfileName = new String(fileName.getBytes("UTF-8"),"ISO8859-1");
response.setHeader("content-disposition",
"attachment;filename=" + newfileName);
}
response.setHeader("Content-Length", String.valueOf(fileLength));
bis = new BufferedInputStream(new FileInputStream(ctxPath));
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.close();
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
java下载文件的时候中文名乱码
最新推荐文章于 2024-01-19 11:09:18 发布