通过HttpClient 以POST方式上传多个文件

转载自哪我忘了。使用过程中有些地方需要改动,也有些小地方不注意就很坑。
我前端要求的表单格式为
< input type=“file” name=“file” />
< input type=“file” name=“file” />
//可上传多个配置文件

	@SuppressWarnings("finally")
	public static String sendFilesPost(String url, String[] fileNames) {
		   HttpClient httpClient = null;
		   HttpPost httpPost;
		   String result = null;
		   try {
		      httpClient = new DefaultHttpClient();
		      httpPost = new HttpPost(url);

		      String[] filenames=fileNames;
		      MultipartEntity reqEntity = new MultipartEntity();
		      for(int i=0;i<filenames.length;i++) {
		               String fileName=filenames[i];
		               FileBody file = new FileBody(new File(fileName));

		               reqEntity.addPart("file", file);// 此处的file为表格里对应的inputtype格式

		       }
		      httpPost.setEntity(reqEntity);
		      HttpResponse response = httpClient.execute(httpPost);
		      if (null != response && response.getStatusLine().getStatusCode() == 200) {
		         HttpEntity resEntity = response.getEntity();
		         if (null != resEntity) {
		            result = EntityUtils.toString(resEntity, HTTP.UTF_8);
		            System.out.println(result);
		         }
		      }
		   } catch (UnsupportedEncodingException e) {
		      e.printStackTrace();
		   } catch (ClientProtocolException e) {
		      e.printStackTrace();
		   } catch (IOException e) {
		      e.printStackTrace();
		   } catch (Exception e) {
		      e.printStackTrace();
		   } finally {
		      // 关闭连接,释放资源
		      httpClient.getConnectionManager().shutdown();
		   }
		   return result;
		}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了HttpClient模块,可以用于发送HTTP请求。而分片上是通过将文件切割成多个小块进行上,以提高上效率和稳定性。 在使用Spring Boot的HttpClient进行分片上时,我们可以按照以下步骤进行操作: 1. 切割文件:使用文件分片工具,将待上文件切割成多个小块。可以根据需求定义每个小块的大小,将文件切割成多少小块。 2. 创建HttpClient对象:使用Spring Boot的HttpClient模块,创建HttpClient对象。 3. 设置请求头:根据实际需求,设置请求头信息。例如设置Content-Type、Authorization等。 4. 逐个上分片:对于每个分片,使用HttpClient发送POST请求,将分片上到服务器。可以使用MultipartEntityBuilder构建表单,将分片作为表单项进行上。 5. 监听上进度:可以使用Apache HttpClient提供的ProgressHttpEntityWrapper类来监听上进度,可以根据上进度更新UI,或者进行其他操作。 6. 合并分片:当所有分片都上完毕后,可以发送请求告知服务器进行分片合并。可以在请求体中携带分片标识信息,以便服务器识别和合并分片。 7. 处理上结果:根据服务器返回的响应,判断上是否成功。如果上成功,则可以得到相应的上信息和文件地址等。 总的来说,使用Spring Boot的HttpClient模块进行分片上相对比较简单,核心是文件切割和使用HttpClient逐个上分片。可以根据实际需求,结合进度监听和错误处理等功能,来实现更加高效和稳定的分片上

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值