微信-图片
一、上传到微信服务器
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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律