代码如下,供参考:
**最下面这两句代码,是将提示信息写到一个新页面**
response.setHeader("Content-type", "text/html;charset=UTF-8"); //头部
response.getOutputStream().write(errorMsg.getBytes("UTF-8")); //将提示信息写入到一个页面
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
/**
* @author ZhouMengShun
*/
public class DemoController {
/**
* 文件下载
* @param request
* @param response
* @param filePath 文件路径
*/
public void downloadFile(String filePath,HttpServletResponse response) throws Exception {
File file = new File(filePath);//创建下载的文件对象
if (file.exists()) {//判断文件是否存在
response.reset();
response.setContentType("application/x-msdownload");
//得到文件名称
String fileDownName=new String(file.getName().getBytes("gbk"),"iso8859-1");
response.addHeader("Content-Disposition","attachment; filename=\""+fileDownName+"\"");
int fileLength = (int) file.length();
response.setContentLength(fileLength);
if (fileLength != 0) {//判断文件长度大于0
InputStream inStream = new FileInputStream(file);//创建输入流
byte[] buf = new byte[4096];
ServletOutputStream servletOS = response.getOutputStream();//创建输出流
int readLength;
while (((readLength = inStream.read(buf)) != -1)) {
servletOS.write(buf, 0, readLength); //写
}
servletOS.flush();
inStream.close();
servletOS.close();
}
} else { //文件不存在
String errorMsg = "文件不存在,请联系管理员!";
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.getOutputStream().write(errorMsg.getBytes("UTF-8")); //将提示信息写入到一个页面
//throw new Exception("文件不存在,请联系管理员!"); //手动抛出一个异常
}
}
}