微信上传永久素材接口开发(二)

原创 2016年05月30日 15:24:38

于是咱们照猫画虎,将这段代码改一下,变成可以上传图片素材的程序:

public static String postFile(String url, String filePath) {
	File file = new File(filePath);
	if (!file.exists())
		return null;
	String result = null;
	try {
		URL url1 = new URL(url);
		HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
		conn.setConnectTimeout(5000);
		conn.setReadTimeout(30000);
		conn.setDoOutput(true);
		conn.setDoInput(true);
		conn.setUseCaches(false);
		conn.setRequestMethod("POST");
		conn.setRequestProperty("Connection", "Keep-Alive");
		conn.setRequestProperty("Cache-Control", "no-cache");
		String boundary = "-----------------------------" + System.currentTimeMillis();
		conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);

		OutputStream output = conn.getOutputStream();
		output.write(("--" + boundary + "\r\n").getBytes());
		output.write(
				String.format("Content-Disposition: form-data; name=\"media\"; filename=\"%s\"\r\n", file.getName())
						.getBytes());
		output.write("Content-Type: image/jpeg \r\n\r\n".getBytes());
		byte[] data = new byte[1024];
		int len = 0;
		FileInputStream input = new FileInputStream(file);
		while ((len = input.read(data)) > -1) {
			output.write(data, 0, len);
		}
		output.write(("\r\n--" + boundary + "\r\n\r\n").getBytes());
		output.flush();
		output.close();
		input.close();
		InputStream resp = conn.getInputStream();
		StringBuffer sb = new StringBuffer();
		while ((len = resp.read(data)) > -1)
			sb.append(new String(data, 0, len, "utf-8"));
		resp.close();
		result = sb.toString();
		System.out.println(result);
	} catch (ClientProtocolException e) {
		log.error("postFile,不支持http协议", e);
	} catch (IOException e) {
		log.error("postFile数据传输失败", e);
	}
	System.out.println(result);
	return result;
}

public static void main(String[] args) {
	String url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=So3cGezg-11111&type=image";
	postFile(url, "/Users/noname/Downloads/test.jpg");
}


这样上传视频和图片的就都全了。至于语音,暂时没有需求,不过估计代码也差不了多少。

在百度的时候看到许多兄弟在问,于是把这段代码贴出来,希望能够帮到有需要的兄弟。

上一篇:http://blog.csdn.net/oarsman/article/details/51538078

微信上传永久素材接口开发(一)

最近帮朋友开发一个微信内容管理平台,想要利用这个平台上传图片或者视频资源到微信平台。看了一下微信的开发文档,发现微信对于上传永久素材这个接口,给出的文档太过简略,而且提供的样例也不是代码的方式,只给了...
  • oarsman
  • oarsman
  • 2016年05月30日 15:20
  • 3861

Java 微信公众号上传永久素材的方法

用 Java 实现微信公众号上传永久素材,代码如下: /** * 上传其他永久素材(图片素材的上限为5000,其他类型为1000) * @param appid * @param se...
  • yh88356656
  • yh88356656
  • 2016年02月18日 14:09
  • 13355

微信上传永久素材接口开发(一)

最近帮朋友开发一个微信内容管理平台,想要利用这个平台上传图片或者视频资源到微信平台。看了一下微信的开发文档,发现微信对于上传永久素材这个接口,给出的文档太过简略,而且提供的样例也不是代码的方式,只给了...
  • oarsman
  • oarsman
  • 2016年05月30日 15:20
  • 3861

java开发微信上传服务器素材接口开发

/** * 模拟form表单的形式 ,上传文件 以输出流的形式把文件写入到url中,然后用输入流来获取url的响应 * @param url * ...
  • u011974797
  • u011974797
  • 2016年12月09日 15:15
  • 851

微信公众号调用上传永久素材接口

微信公众号调用上传永久素材接口
  • zhang53141
  • zhang53141
  • 2017年04月14日 15:54
  • 2222

微信开发中使用curl上传永久素材

关键字:curl、微信开发、上传永久素材前言微信开发,需要使用的素材(如图片、视频)必须先上传到微信服务器,通过微信服务器返回的meida_id在腾讯系域名内使用。当然可以直接使用代码来实现上传请求,...
  • sam976
  • sam976
  • 2016年09月15日 12:00
  • 2261

最近在做微信上传素材,使用tp5做框架,遇到了41005的问题,这里是解决的方法

//curl_post function curl_post($url,$data = ''){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 ...
  • daily886
  • daily886
  • 2017年12月08日 17:23
  • 213

微信上传图文消息素材报错:{ errcode: 40007, errmsg: 'invalid media_id hint: [klcWoA0078ure1]' }

微信上传图文消息报错:{ errcode: 40007, errmsg: 'invalid media_id hint: [klcWoA0078ure1]' }...
  • zzwwjjdj1
  • zzwwjjdj1
  • 2016年08月30日 10:08
  • 10819

解决微信上传临时素材

一、简单的写一个html页面用来提交文件 html> form action="add_media.php" method="post" enctype="multipart/form-da...
  • ldTrueLove
  • ldTrueLove
  • 2016年12月01日 16:30
  • 1724

微信上传临时素材的坑

客服系统用的是网易七鱼的系统,小程序内的客服需要和网易七鱼进行对接。网易七鱼现在只支持自动和微信公众号对接,小程序对它来说相当于一个第三方系统。 其中有这么一个场景,把七鱼发到我们服务器上的图片,当...
  • u012135155
  • u012135155
  • 2018年01月09日 15:31
  • 40
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微信上传永久素材接口开发(二)
举报原因:
原因补充:

(最多只允许输入30个字)