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

原创 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

相关文章推荐

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

用 Java 实现微信公众号上传永久素材,代码如下: /** * 上传其他永久素材(图片素材的上限为5000,其他类型为1000) * @param appid * @param se...

微信公众平台开发【素材管理】上传临时素材

公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。 接口开放权限:素材管理接口对所有认证的订...

微信公众平台开发 上传素材

微信公众账号在回复图片、语音、视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现。本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件。 一、上传多媒体文件 ...

微信公共服务平台开发(.Net 的实现)8-------处理图片(上传下载发送)

举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的。那么我们现在就要分析一下这...
  • hechurui
  • hechurui
  • 2014年03月28日 14:27
  • 15528

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

微信高级群发之一上传图文消息素材

/** * uploadNews(List messageInfos)上传图文消息素材,最多上传10个图文 * accessToken:(ACCESS_TOKEN长期有效).   *   *...

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

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

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

/**   * 上传其他永久素材(图片素材的上限为5000,其他类型为1000)   * @param appid   * @param secret   * @return   * @throws ...

java向微信服务器上传永久图片素材

java利用ajaxFileUpload向微信服务器上传永久图片素材

微信素材管理之获取永久素材和删除永久素材

/** * 获取素材列表[永久] * $material_type [类型] image/video/voice/news 图片 视频 语音 图文 * QVqFyY4hY...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微信上传永久素材接口开发(二)
举报原因:
原因补充:

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