Java 实现上传文件客户端代码(二)


package cn.com.sinosoft.wechat.utils;

import java.io.File;
import java.io.IOException;
import java.util.Map;

import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.CloseableHttpClient;

/**
 * 上传下载文件
 * @User: Jason
 * @Time:2017-8-18下午1:51:56
 *
 */
public class MultipartUtils extends HttpClientUtils {

	
	public static String formUpload(String url, Map<String, Object> param, String method){
		
		return formUpload(url, param, method) ;
	}
	
	/**
	 * 新增临时素材
	 *	公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。
	 *	素材管理接口对所有认证的订阅号和服务号开放。通过本接口,公众号可以新增临时素材(即上传临时多媒体文件)。
	 *  注意点:
	 *	1、临时素材media_id是可复用的。
	 *	2、媒体文件在微信后台保存时间为3天,即3天后media_id失效。
	 *	3、上传临时素材的格式、大小限制与公众平台官网一致。
	 *	    图片(image): 2M,支持PNG\JPEG\JPG\GIF格式
	 *	    语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
	 *	    视频(video):10MB,支持MP4格式
	 *	    缩略图(thumb):64KB,支持JPG格式
	 *	4、需使用https调用本接口。
	 *  注:支持别的上传需要扩展
	 * @param url
	 * @param filePath 文件路径
	 * @param method
	 * @return
	 */
	public static String formUpload(String url, String filePath, String method){
		
		return uploadHttps(url, filePath, getHttpClientInstance().build()) ;
	}
	
	
	protected static String upload(String url, Map<String, Object> map){
		
		return null ;
	}
	
	protected static String uploadHttps(String url, String filePath, CloseableHttpClient httpClient){ 
		HttpPost httpPost = new HttpPost(url);
		String retStr = null;
		try { 
			// 设置文件参数
			FileBody fileBoday = new FileBody(new File(filePath));
			// 创建上传对象multip
			MultipartEntityBuilder multip = MultipartEntityBuilder.create();
			// 设置上传的数据
			multip.addPart("media", fileBoday);
			// 设置text 数据
			//			StringBody stringBody = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);  ;
			//			multip.addTextBody("data", "测试上传是否成功") ;
			//			multip.addPart("comment", stringBody);
			httpPost.setEntity(multip.build()); 
			CloseableHttpResponse response = httpClient.execute(httpPost);
			
			if(check(response)){ 
				retStr = retMsg(response);
			}
			close(httpClient, response);
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		return retStr ;
		
	}
	
	public static boolean download(String url, String filePath, String fileName){
		
		
		return false ;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值