博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上传多媒体文件到微信公众平台
阅读量:5249 次
发布时间:2019-06-14

本文共 2066 字,大约阅读时间需要 6 分钟。

/**

     * 上传多媒体文件到微信公众平台
     *
     * @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;
    }

转载于:https://www.cnblogs.com/xunfang123/p/4196152.html

你可能感兴趣的文章
mongodb命令----批量更改文档字段名
查看>>
CentOS 简单命令
查看>>
使用 SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>
MacOS copy图标shell脚本
查看>>
国外常见互联网盈利创新模式
查看>>
Oracle-05
查看>>
linux grep 搜索查找
查看>>
Not enough free disk space on disk '/boot'(转载)
查看>>
android 签名
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>