微信服务号开发 上传多媒体文件:图片

/**
     * 通过文件上传得到文件media_id,文件名
     *
     * @param file
     * @return
     */
    public static Map<String, String> getIdByUploadFile(File file) {
        Map<String, String> map = new HashMap<String, String>();
        // 返回文件上传成功的media_id
        String media_id = "";
        String imgPath = file.getName();

// 这里存放的是指定的目录data(一般是从配置文件中读取)
        File storeFile = new File(Const.FILE_IMG_PATH + imgPath);
        Files.copy(file, storeFile);

String httpUrl = WXConst.FILE_URL;
        String fileType = Const.FILE_FILE_TYPE;
        String access_token = (String) Cache.get("access_token");
        String contentType = Const.FILE_CONTENT_TYPE;
        String filePath = Const.FILE_IMG_PATH;

JSON json = new JSONObject();
        json = WXHttpUtil.UploadMedia(httpUrl, fileType, access_token, imgPath, file, contentType, filePath);
        String resultString = json.toString();
        // 将结果转换成json格式的数据
        JSONObject resultObj = json.parseObject(resultString);
        System.out.println("===media_id===>>" + resultObj.getString("media_id"));
        // 返回的结果的状态码
        if ("".equals(resultObj.getString("media_id")) || resultObj.getString("media_id") == null) {
            // 请求失败的提示信息
            System.out.println(Messages.get("upload_multimedia_files_fail") + resultObj);
        } else {
            // 请求成功返回的提示信息
            media_id = resultObj.getString("media_id");
            System.out.println(Messages.get("upload_multimedia_files_success") + resultObj);
        }
        map.put("media_id", media_id);
        map.put("imgPath", imgPath);
        return map;
    }

时间: 2024-07-29 22:30:03

微信服务号开发 上传多媒体文件:图片的相关文章

微信公众号开发---上传临时素材到公众号遇到的问题:&quot;errcode&quot;:41005,&quot;errmsg&quot;:&quot;media data missing

1.上传临时素材到公众号遇到的问题:"errcode":41005,"errmsg":"media data missing 解决办法:因为php版本的原因,上传素材一直保错.php的curl的curl_setopt 函数存在版本差异 php5.5已经把通过@加文件路径上传文件的方式给放入到Deprecated中了.php5.6默认是不支持这种方式了 特殊处理1:curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, false);

微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint

微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下面api文档介绍: 按照示例插入文字小程序和图片小程序都没问题,但是插入卡片小程序却是一直报错errcode=45166,errmsg = invalid content hint.检查了好长时间,才发现卡片小程序的示例中data-progarm-imageurl参数写错了,应该是data-mini

第三方微信公众号开发上传永久素材,当是其他类型的素材是参数如何设置

微信开发文档是这样说的,可是也没说清楚这个filename.filelength,conten-type到底是什么... 起初我三个参数都给了,但是搞了半天都返回错误代码41005,缺少多媒体文件数据...好像是这个错..我忘了..反正很莫名其妙... 网上找了很久说啥版本问题的都试过,不行啊... 后来发现还是media这个参数集合给错了...orz... filename是文件地址.filelength要给正确的文件大小...但是到底是啥...最终我都没研究出来... 后来我索性就给个fil

微信服务号开发-获取用户位置信息

微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动.下面将介绍微信服务号获取用户位置信息的原理与步骤. 原理 1. 位置信息获取流程 2. 位置信息报文 <xml><ToUserName><![CDATA[gh_public_member_account]]></ToUserName> <FromUserName><![CDATA[o

微信服务号开发笔记

原理 微信服务号的原理比较简单.从请求响应角度来看,逻辑是: 用户微信客户端 <—> 微信服务器 <—> 微信服务号后台程序 <—> 数据库或Web Service 也就是,用户的各种请求先经过微信的服务器,微信服务器将请求转发给微信服务号后台程序. 既然是微信服务器把用户请求数据转发给我们开发的微信服务号后台程序,那么在启用服务号的开发模式时就需要提供一个URL.另外为了安全 考虑,还需要提供一个token,用来校验请求是否来自微信服务器.校验的方法见微信开发者文档.

微信 服务号开发

tp5.0  一个入口文件,一个wx类 //WxAction.php 入口 <?php /** * Created by PhpStorm. * User: lxd * Date: 17/10/31 * Time: 18:01 * 微信请求统一入口,单独的类,无需基础其他类 */ namespace app\index\controller; use telerr\Chaoxin; use think\Config; use think\Request; use wx\Wx; class WxA

asp.net mvc微信公众号开发之上传永久素材

1.上传永久图片素材,注意构造请求头部信息时name="media"就行了 视图代码: @using (Html.BeginForm("UploadFile", "MenuConfig", FormMethod.Post, new { enctype = "multipart/form-data" })) { <span>上传文件</span> <input type="file&quo

微信服务号开发-商城微信登录

最近帮朋友写了个微信服务号,服务号名字叫做十四行诗.没错是卖月饼的商城. 简单介绍下微信登录,与官方文档不同,简单画了一下UML图 简单的说就是先建立了一个index.php(直接拍域名就过去了.),然后传一个appid,微信公众号后台能拿到 <?php $appid = ''; header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri=http://w

JAVA微信服务号开发简记

现在微信公众平台的开发已经越来越普遍,这次开发需要用到微信公众平台.所以这边做一个简单的记录,也算是给那些没踩过坑的童鞋一些启示吧.我将分几块来简单的描述一下,之后会做详细的说明. 基本认证信息说明 首先.微信分为了几个不同的号.有订阅号.服务号.企业号. 其中订阅号是免费的.其他都是要钱的.免费的基本上只能发发信息. 要钱的功能比较全面.基本上微信的接口都能调用了.这里我也主要开发的是服务号. 如果要申请服务号微信也是明码标价,300块一次,一年一次.(收钱真狠) 简单的说,如果你没有交钱那么