在jsp中
File file=new File(str);
String filename=file.getName();
if(file.exists()){
response.reset();
response.setContentLength((int) file.length());
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=" + new String(filename.getBytes(),"ISO-8859-1"));
OutputStream os = response.getOutputStream();
InputStream is = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[8192];
int length = 0;
while ((length = is.read(buffer)) >= 0) {
os.write(buffer, 0, length);
}
is.close();
os.flush();
os.close();
out.clear();
out = pageContext.pushBody();//防止out冲突
第二种
File file=new File(msg);
if(file.exists()){
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.setContentDisposition(null);
String fileName = file.getName();
//fileName = new String(fileName.getBytes("utf-8"),"iso-8859-1");
su.downloadFile(file.getPath(), "application/force-download", fileName);
out.clear();
out = pageContext.pushBody();
out.print("javascript:close()");
}