/**
* 下载文件
*
* @param path
* 文件路径
* @param response
* HttpServletResponse对象
* @param filename
* 下载提示文件名
* @throws Exception
*/
public static void downLoad(String path, HttpServletResponse response,
String filename) throws Exception {
File file = new File(path);
InputStream is = new FileInputStream(file);
FileUtils.downLoad(is, response, filename);
}
/**
* 下载文件
*
* @param input
* 下载输入流对象
* @param response
* HttpServletResponse对象
* @param filename
* 下载提示文件名
* @throws Exception
*/
public static void downLoad(InputStream input,
HttpServletResponse response, String filename) throws Exception {
// 指定默认的contentType,为弹出下载框
String contentType = "application/x-download";
FileUtils.downLoad(input, response, filename, contentType);
}
/**
* 下载文件
*
* @param input
* 下载输入流对象
* @param response
* HttpServletResponse对象
* @param fileName
* 下载提示文件名
* @param contentType
* 下载的ContentType
* @throws Exception
*/
public static void downLoad(InputStream input,
HttpServletResponse response, String fileName, String contentType)
throws Exception {
if (contentType == null || "".equals(contentType))
contentType = "application/x-download";
response.setContentType("application/" + contentType);
response.addHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode(fileName, "UTF-8"));
// 定义输出流对象
OutputStream out = null;
try {
out = response.getOutputStream();
byte[] buffer = new byte[1024 * 8];
int readLen = 0;
while ((readLen = input.read(buffer)) != -1) {
out.write(buffer, 0, readLen);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭流
try {
// 关闭输入流
if (input != null) {
input.close();
}
} catch (java.io.IOException e) {
e.printStackTrace();
}
if (out != null) {
out.flush();
out.close();
}
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
java 文件下载
最新推荐文章于 2023-07-31 13:24:14 发布