public HttpServletResponse download(String docid,HttpServletResponse response,String userName) {
try{
String sql = "";
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(date);
String filename = "";
try {
//获取文件名,doc为文件对象
filename = doc.getObjectName();
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
//获取文件流的大小
long size = doc.getContentSize();
// 以流的形式下载文件。
//BufferedInputStream fis = new BufferedInputStream(doc.getContent());
InputStream fis = new BufferedInputStream(doc.getContent());//ByteArrayInpuntStream
//InputStream fis = doc.getContent();
//InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
//ByteArrayInputStream buffer = doc.getContent();
// 清空response
response.reset();
// 设置response的Header
//response.addHeader("Content-Disposition", "attachment;filename="+ filename);
response.addHeader("Content-Disposition", "attachment;filename="+ new String( filename.getBytes("gb2312"), "ISO8859-1" ));//解决中文乱码问题
response.addHeader("Content-Length", "" + size);
OutputStream toClient = new BufferedOutputStream(response
.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return response;
}文件上传
最新推荐文章于 2025-09-25 09:21:23 发布
本文介绍了一个使用Java实现的文件下载方法,通过HTTP响应将指定ID的文件内容返回给客户端,并解决了中文文件名的乱码问题。
2万+

被折叠的 条评论
为什么被折叠?



