微信-图片

一、上传到微信服务器

1、引入微信js

 <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

 

2、调用微信选图/相机接口

复制代码
    var localIds;//调用选择图片的客户端id
    var mediaId;//上传到微信服务器后返回的id
    var savePath;//本地服务器图片保存位置,相对位置


    wx.chooseImage({
        count: 1, // 默认9
        sizeType: ['compressed'],     //可以指定是原图还是压缩图,默认二者都有
        sourceType: ['camera'],     //可以指定来源是相册还是相机,默认二者都有
        success: function (res) {
            //起loading效果
            $('.loadIng').show();
            //返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
            localIds = res.localIds;

        }
    });
复制代码

 

3、上传到微信服务器

    //上传到微信的临时图片服务器
    wx.uploadImage({
        localId: localIds.toString(), // 需要上传的图片的本地ID,由chooseImage接口获得
        isShowProgressTips: 1, // 默认为1,显示进度提示
        success: function (res) {
            mediaId = res.serverId; // 返回图片的服务器端ID
        }
    });

 

 

二、从微信服务器下载图片

1、前端:

复制代码
    //根据腾讯返回的图片ID下载到本地服务器
    var params = "mediaId="+mediaId;
    $.post('<%=path%>/infoManagement/saveImage',params,function(data){
        var data = $.parseJSON(data);
        if(data.status=="0000"){
            savePath= data.savePath;
            document.getElementById(img_input).src = picUrl+savePath;//在页面上展示本地服务器上的图片
        }
    });
复制代码

 

2、后端:

引入文件上传下载的依赖:

不需要全部,暂时

复制代码
    <properties>
        
        <commons-collections.version>3.1</commons-collections.version>
        <commons-dbcp.version>1.4</commons-dbcp.version>
        <commons-fileupload.version>1.1.1</commons-fileupload.version>
        <commons-io.version>2.0</commons-io.version>
        <commons-logging.version>1.0.4</commons-logging.version>
        <commons-lang.version>2.0</commons-lang.version>
        
        <commons-codec.version>1.4</commons-codec.version>
        
        <commons-lang3.version>3.3.1</commons-lang3.version>
        <commons-discovery.version>0.4</commons-discovery.version>
        
    </properties>
复制代码

 

 

复制代码
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>${commons-collections.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>${commons-dbcp.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>${commons-logging.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>${commons-lang.version}</version>
        </dependency>
复制代码

 

 

从微信服务器获取图片

复制代码
    /**
     * 从微信服务器后去图片的输入流对象
     * @param mediaId
     * @return
     * @throws IOException
     */
    public static InputStream getMedia(String mediaId) throws IOException {
        //获取微信服务器,图片
        String accessToken= "网页获取或者我也不知,百度吧";//根据实际获取此处
        String url = "https://api.weixin.qq.com/cgi-bin/media/get";
        String params = "access_token=" + accessToken + "&media_id=" + mediaId;
        String urlNameString = url + "?" + params;
        InputStream is = null;
        URL urlGet = new URL(urlNameString);
        HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
        http.setRequestMethod("GET"); // 必须是get方式请求
        http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        http.setDoOutput(true);
        http.setDoInput(true);
        http.connect();
        // 获取文件转化为byte流
        is = http.getInputStream();

        return is;

    }
复制代码

 

 保存图片

 

复制代码
    /**
     * 保存图片到本地服务器
     * @return
     * @throws IOException
     */
    public  static String savaI() throws IOException {
        String pathUrl="图片的保存路径";//相对路径和文件名称
        InputStream media = getMedia("前端传入的media");
        FileOutputStream os = new FileOutputStream(pathUrl);
        int len = 0;
        byte[] data = new byte[1024];
        while ((len = media.read(data)) != -1) {
            os.write(data, 0, len);
        }


        return pathUrl;
    }
复制代码

  

  

posted @   hehehenhen  阅读(82)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示