public synchronized int writerMaxFile(File inFile, HttpServletResponse response) throws Exception {
response.reset();
//response.setHeader("Cache-Control", "no-cache");
//response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setDateHeader("Content-Length", inFile.length());
response.setDateHeader("Last-Modified", new Date().getTime());
//确保IE识别本次为下载文件
response.setHeader("Content-Transfer-Encoding","binary");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
String fileName = inFile.getName();
response.setHeader("Content-Disposition", "attachment; filename=\""
+ new String(fileName.getBytes("GBK"), "ISO8859_1") + "\"");
response.setContentType("application/octet-stream");
byte[] buffer = new byte[29999];
InputStream inStream = null;
OutputStream outputStream = null;
int errorInt = 0;
if (inFile.exists()) {
response.setContentLength((int) inFile.length());
try {
//创建流文件读入类
inStream = new BufferedInputStream(new FileInputStream(inFile));
outputStream = new BufferedOutputStream(response.getOutputStream());
for (int length = 0; (length = inStream.read(buffer)) > 0;) {
outputStream.write(buffer, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
errorInt = 1;
} finally {
buffer = null;
try {
if (inStream != null) {
inStream.close();
inStream = null;
}
if (outputStream != null) {
outputStream.close();
outputStream = null;
}
} catch (Exception e) {
e.printStackTrace();
errorInt = 1;
}
}
} else {
errorInt = 1;
}
return errorInt;
}
response.reset();
//response.setHeader("Cache-Control", "no-cache");
//response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setDateHeader("Content-Length", inFile.length());
response.setDateHeader("Last-Modified", new Date().getTime());
//确保IE识别本次为下载文件
response.setHeader("Content-Transfer-Encoding","binary");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
String fileName = inFile.getName();
response.setHeader("Content-Disposition", "attachment; filename=\""
+ new String(fileName.getBytes("GBK"), "ISO8859_1") + "\"");
response.setContentType("application/octet-stream");
byte[] buffer = new byte[29999];
InputStream inStream = null;
OutputStream outputStream = null;
int errorInt = 0;
if (inFile.exists()) {
response.setContentLength((int) inFile.length());
try {
//创建流文件读入类
inStream = new BufferedInputStream(new FileInputStream(inFile));
outputStream = new BufferedOutputStream(response.getOutputStream());
for (int length = 0; (length = inStream.read(buffer)) > 0;) {
outputStream.write(buffer, 0, length);
}
} catch (Exception e) {
e.printStackTrace();
errorInt = 1;
} finally {
buffer = null;
try {
if (inStream != null) {
inStream.close();
inStream = null;
}
if (outputStream != null) {
outputStream.close();
outputStream = null;
}
} catch (Exception e) {
e.printStackTrace();
errorInt = 1;
}
}
} else {
errorInt = 1;
}
return errorInt;
}