Java从网上下载文件的代码
发布时间:2020-05-24 19:24:59 所属栏目:Java 来源:互联网
导读:Java从网上下载文件的代码
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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,4096)) > -1) {
output.write(buffer,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;
}
}
调用 DownLoadUtil.java; public ActionForward downLoadExcelModel(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest request,HttpServletResponse response) throws Exception {
String busType = request.getParameter("busType");
String path = request.getSession().getServletContext().getRealPath(
"/resources");
String name = null;
String fileName = null; //服务器上文件名
fileName = "xxxl.xls";
name = "xxxx.xls";
}
String filePath = path + System.getProperty("file.separator") + fileName;
DownLoadUtil.downLoadFile(name,filePath,response,"xls");
return null;
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
