Httpclient 实现文件下载方式

Httpclient 实现文件下载

   点关注不迷路,欢迎再访!

精简博客内容,尽量已行业术语来分享。
努力做到对每一位认可自己的读者负责。
帮助别人的同时更是丰富自己的良机。

一.服务端
public void writFileToResponse(FileInfo fileInfo, HttpServletResponse response) {
		FileInputStream input = null;
		String fileName = fileInfo.getFileName() + "." + fileInfo.getFileExt();
		try {
			File file = new File(fileInfo.getFileFullPath());
			response.setContentLength((int) file.length());
			response.setContentType(FileContentType.getContentType(fileInfo.getFileExt()));
			response.setHeader("Content-Disposition","inline; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
			input = new FileInputStream(file);
			OutputStream sout = response.getOutputStream();
			long start = System.currentTimeMillis();
			FileCopyUtils.copy(input, sout);
			long end1 = System.currentTimeMillis();
			logger.info("FileCopyUtils.copy总时间:" + (end1 - start));
			sout.flush();
		} catch (FileNotFoundException e) {
			logger.error(e);
		} catch (IOException e) {
			logger.warn(e);
		} finally {
			try {
				if (input != null) {
					input.close();
				}
			} catch (IOException e) {
				;
			}
		}

	}

FileCopyUtils.copy(input, sout) spring-core核心包

二.客户端
public void testDownloadFile(String url) throws Exception { 
	  String url ="http://XXXXXX/download.do";
	  PostMethod method = new PostMethod(url); 
	  method.addParameter("fileId", file);
	  HttpClient client = new HttpClient();
	  client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
	  int statusCode1 = client.executeMethod(method);
	  //流文件方式接收一
	  InputStream input = method.getResponseBodyAsStream();
	  //接收文件byte数组方式二
	  byte [] byte = method.getResponseBody();
	  System.out.println("statusLine>>>" + method.getStatusLine());
	  method.releaseConnection(); 
 }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值