/**

* 上传文件

* @throws  ParseException

* @throws  IOException

*/

publicstaticvoidpostFile()throwsParseException, IOException{

CloseableHttpClient httpClient = HttpClients.createDefault();

try{

// 要上传的文件的路径

String filePath =newString("F:/pic/001.jpg");

// 把一个普通参数和文件上传给下面这个地址 是一个servlet

HttpPost httpPost =newHttpPost(

"http://localhost:8080/xxx/xxx.action");

// 把文件转换成流对象FileBody

File file =newFile(filePath);

FileBody bin =newFileBody(file);

StringBody uploadFileName =newStringBody(

"把我修改成文件名称", ContentType.create(

"text/plain", Consts.UTF_8));

//以浏览器兼容模式运行,防止文件名乱码。

HttpEntity reqEntity = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE)

.addPart("uploadFile", bin)//uploadFile对应服务端类的同名属性

.addPart("uploadFileName", uploadFileName)//uploadFileName对应服务端类的同名属性

.setCharset(CharsetUtils.get("UTF-8")).build();

httpPost.setEntity(reqEntity);

System.out.println("发起请求的页面地址 "+ httpPost.getRequestLine());

// 发起请求 并返回请求的响应

CloseableHttpResponse response = httpClient.execute(httpPost);

try{

System.out.println("----------------------------------------");

// 打印响应状态

System.out.println(response.getStatusLine());

// 获取响应对象

HttpEntity resEntity = response.getEntity();

if(resEntity !=null) {

// 打印响应长度

System.out.println("Response content length: "

+ resEntity.getContentLength());

// 打印响应内容

System.out.println(EntityUtils.toString(resEntity,

Charset.forName("UTF-8")));

}

// 销毁

EntityUtils.consume(resEntity);

}finally{

response.close();

}

}finally{

httpClient.close();

}

}

/**

* 下载文件

* @param  url

* @param  destFileName   xxx.jpg/xxx.png/xxx.txt

* @throws  ClientProtocolException

* @throws IOException

*/

publicstaticvoidgetFile(String url, String destFileName)

throwsClientProtocolException, IOException {

// 生成一个httpclient对象

CloseableHttpClient httpclient = HttpClients.createDefault();

HttpGet httpget =newHttpGet(url);

HttpResponse response = httpclient.execute(httpget);

HttpEntity entity = response.getEntity();

InputStream in = entity.getContent();

File file =newFile(destFileName);

try{

FileOutputStream fout =newFileOutputStream(file);

intl = -1;

byte[] tmp =newbyte[1024];

while((l = in.read(tmp)) != -1) {

fout.write(tmp,0, l);

// 注意这里如果用OutputStream.write(buff)的话,图片会失真,大家可以试试

}

fout.flush();

fout.close();

}finally{

// 关闭低层流。

in.close();

}

httpclient.close();

}

java httpclient 下载文件_httpclient 上传文件、下载文件相关推荐

  1. 初学Java Web(7)——文件的上传和下载

    文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...

  2. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

  3. FastDFS:Java客户都实现文件的上传、下载、修改、删除

    FastDFS:Java客户都实现文件的上传.下载.修改.删除 <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...

  4. nginx java文件上传_Nginx实现文件的上传和下载

    文件的上传只要保证特殊的地址先到达Nginx,然后通过Nginx指定至指定的服务器即可,目前配置是本机.文件的下载的做法就是把本机的当前目录下面的文件给返回回去. server { listen ; ...

  5. java struts2下载文件_Struts2下多文件的上传与下载

    Struts2下多文件的上传与下载 目录 多文件 上传 下载 随意文件java Struts2单例 配置 动态读取 李顺利 在网络上,对于Java处理文件上传和下载的技术比较多,而Struts作为一款 ...

  6. java图片上传下载_java实现文件的上传和下载

    1. servlet 如何实现文件的上传和下载? 1.1上传文件 参考自:http://blog.csdn.net/hzc543806053/article/details/7524491 通过前台选 ...

  7. Hadoop环境下用java代码实现hdfs远程文件的上传和下载

    Hadoop环境下用java代码实现hdfs远程文件的上传和下载 文章目录 Hadoop环境下用java代码实现hdfs远程文件的上传和下载 一.新建maven工程 二.文件的上传 三.文件的下载 四 ...

  8. Java ftp实现文件的上传和下载ftp,sftp sun.net.ftp.FtpProtocolException:Welcome message: SSH-2.0-OpenSSH_5.1

    Java ftp实现文件的上传和下载 ftp,sftp 运行后发现很长时间没有反应,很久以后抛出如下异常:sun.net.ftp.FtpProtocolException:Welcome messag ...

  9. SpringMVC实现文件的上传和下载

    SpringMVC实现文件的上传和下载http://www.bieryun.com/1120.html 前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:"用什么技术来实现一般网页上文件的 ...

  10. SpringMVC实现文件的上传与下载

    文件的上传与下载可以说是工作中经常使用的功能,现在整理一下,希望能够给大家一个参考.这里以 Maven 的形式来创建项目,相关的配置文件会把主要的内容列出来,其他头文件信息不再一一全部的列出.最后会把 ...

最新文章

  1. Eclipse RCP 中将窗口始终保持在最前
  2. Silverlight+WCF 新手实例 象棋 主界面-事件区-求和认输(三十二)
  3. new Map的妙用
  4. 备考信息系统项目管理师5点必过经验
  5. resin php extensions sockets,linux 有关笔记
  6. localdatetime 获取天_LocalDateTime的一些用法
  7. sql注入 练手网站_靶场sql注入练手----sqlmap篇(纯手打)
  8. WIn7虚拟机下运行H3CCloud出错问题
  9. 完了!Oracle 被虐!MySQL 登顶 Top1!原来这么多人都在用
  10. css3中的zoom属性以及jquery中css()方法操作元素的属性
  11. 创建crawlspider爬虫 学习笔记
  12. DP(递归打印路径) UVA 662 Fast Food
  13. 球形天空盒php,unity3d天空盒
  14. Android Framework 音频子系统(02)音频系统框架
  15. QQ/微信 聊天表情显示原理
  16. qq2009 好像和金山词霸屏幕取词有冲突
  17. 已知随机变量X的协方差矩阵求去X的特征值 特征向量 PCA投影矩阵
  18. PHP导出Excel方法大全
  19. 解决AMD Software提示图形驱动版本不匹配问题
  20. Goolge Colab免费GPU服务器使用教程

热门文章

  1. Springboot中关于跨域问题的一种解决方法
  2. 为什么git的“ pull request”不称为“ push request”?
  3. 在Java中从字符串中删除空格
  4. 删除Chrome自动完成功能的输入背景色?
  5. 忽略git项目上的任何#39;bin#39;目录
  6. win11打开应用被管理员阻止怎么办 window11管理员已阻止你运行此应用的解决方法
  7. 未预期的符号 `( 附近有语法错误_苹果iOS 14.2现在提供117种新的表情符号和新的壁纸...
  8. linux中利用shell脚本条件执行linux命令
  9. mysql免费框架_MySQL(ORM框架)
  10. eclipse中怎么安装spring插件_安装eclipse中容易遇到的问题