代码如下,供参考:
**最下面这两句代码,是将提示信息写到一个新页面** 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("文件不存在,请联系管理员!"); //手动抛出一个异常 } } }