/**
* 上传多媒体文件到微信公众平台
*
* @author w_a
*
* 2014-11-27
*
* @param fileType
* 文件类型
* @param access_token
* //在微信平台获取到的凭证
* @param filename
* 文件名称
* @param file
* 文件流
* @param content_type
* 文件类型
* @param filePath
* 文件路径
* @return
*/
public static JSON UploadMedia(String httpUrl, String fileType, String access_token, String filename, File file, String content_type, String filePath) {
String result = "";
String end = "\r\n";
String twoHyphens = "--"; // 用于拼接
String boundary = "*****"; // 用于拼接 可自定义
URL submit = null;
JSONObject json = null;
String requestUrl = httpUrl + "?access_token=" + access_token + "&type=" + fileType;
try {
submit = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) submit.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
// 获取输出流对象,准备上传文件
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + end);
dos.writeBytes("Content-Disposition: form-data; name=\"" + file + "\";filename=\"" + filename + ";filelength=\"" + filePath + ";Content-Type=\"" + content_type + end);
dos.writeBytes(end);
// 对文件进行传输
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[8192]; // 8k
int count = 0;
while ((count = fis.read(buffer)) != -1) {
dos.write(buffer, 0, count);
}
// 关闭文件流
fis.close();
dos.writeBytes(end);
dos.writeBytes(twoHyphens + boundary + twoHyphens + end);
dos.flush();
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
result = br.readLine();
dos.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("与服务器连接发生异常错误:" + e.toString());
System.out.println("连接地址是:" + requestUrl);
}
// 获取到返回Json请自行根据返回码获取相应的结果
json = JSONObject.parseObject(result);
return json;
}
相关文章
- 10-19微信公众号文章中如何添加及上传pdf、doc、xls等文件给粉丝下载
- 10-19微信公众号开发---上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing
- 10-19tp5上传图片添加永久素材到微信公众号
- 10-19微信公众平台网页开发实战--1.微信分享一个网页到朋友圈
- 10-19《微信公众平台入门到精通》Vol.2
- 10-19《微信公众平台入门到精通》Vol.1
- 10-19微信公众平台开发(29)在网页上添加分享到朋友圈,关注微信号等按钮
- 10-19Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
- 10-19Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
- 10-19微信公众平台前端人员对接(微信拍照上传)