public class DownloadFileUtils {
public static void download(HttpServletResponse response, String path) {
//文件在服务器的路径
InputStream inputStream = null;
OutputStream out = null;
try {
//根据文件在服务器的路径读取该文件转化为流
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
inputStream = conn.getInputStream();
//创建一个Buffer字符串
byte[] buffer = new byte[1024];
//设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
//设置文件头:最后一个参数是设置下载文件名(设置编码格式防止下载的文件名乱码)
String fileName = "";
if (path.substring(path.lastIndexOf("/") + 1) != null || !"".equals(path.substring(path.lastIndexOf("/") + 1))) {
fileName = path.substring(path.lastIndexOf("/") + 1);
} else {
fileName = path.substring(path.lastIndexOf("\\") + 1);
}
response.setHeader("Content-Disposition", "attachment;fileName="+new String(fileName.getBytes("gb2312"), "ISO8859-1" ));
out = response.getOutputStream();
int length;
while ((length=inputStream.read(buffer))!=-1){
out.write(buffer,0,length);
}
// IOUtils.copy(inputStream, out);
}catch (Exception e){
e.printStackTrace();
}finally {
try {
inputStream.close();
out.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}