代碼如下,供參考:
**最下面這兩句代碼,是將提示信息寫到一個新頁面**
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("文件不存在,請聯繫管理員!"); //手動拋出一個異常
}
}
}