下载网络文件的Java代码
2018-07-20 来源:open-open
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class DownLoadUtil {
private static Logger logger = Logger.getLogger(DownLoadUtil.class);
/**
* 下载文件
* @param name 用户下载的文件名(*****.***)
* @param filePath 文件路径
* @param response
* @param fileType 文件类型
* @return
* @throws Exception
*/
public static boolean downLoadFile(String name,String filePath,
HttpServletResponse response, String fileType)
throws Exception {
logger.info("start invoke downLoadFile,[filePath:"+filePath+" , fileType:"+fileType+"]");
File file = new File(filePath);
//设置文件类型
if("pdf".equals(fileType)){
response.setContentType("application/pdf");
}else if("xls".equals(fileType)){
response.setContentType("application/msexcel");
}else if("doc".equals(fileType)){
response.setContentType("application/msword");
}
response.setHeader("Content-Disposition", "attachment;filename=\""
+ new String(name.getBytes("GB2312"), "ISO8859-1") + "\"");
//response.setHeader("Content-Disposition", "attachment;filename=\""+ URLEncoder.encode(name, "UTF-8")+ "\"");
response.setContentLength((int) file.length());
byte[] buffer = new byte[4096];// 缓冲区
BufferedOutputStream output = null;
BufferedInputStream input = null;
try {
output = new BufferedOutputStream(response.getOutputStream());
input = new BufferedInputStream(new FileInputStream(file));
int n = -1;
while ((n = input.read(buffer, 0, 4096)) > -1) {
output.write(buffer, 0, n);
}
output.flush();
response.flushBuffer();
} catch (Exception e) {
logger.error("exception when invoke downLoadFile",e);
throw e;
} finally {
if (input != null)
input.close();
if (output != null)
output.close();
}
logger.info("end invoke downLoadFile!");
return true;
}
}
标签: isp
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:php缩放图片代码
最新资讯
热门推荐