图片上传(调用微信接口)

图片上传之原生方法

图片上传、压缩、回显、缩略图放大、删除、下载,可以参考这儿(h5方法)
https://github.com/zhangstar1331/pictureUpload
效果展示
在这里插入图片描述

背景

图片上传,我们一般用下面的H5方法,但是在安卓手机上无法一次性上传多张图片。为了能满足情况,如果是微信公众号项目,可以调用微信上传接口来实现。

<input class="hidden-input"  type="file" accept="image/*" style="height: 71px;opacity: 0;" multiple/>

图片上传之调用微信接口

1、h5页面引入微信js

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

2、调用后台接口,进行微信初始化配置

$.ajax({url : "/cic-crm-web/cic/getConfig.do",async : true,type : "POST",headers: {"token":token},data : {"url" : encodeURIComponent(location.href.split('#')[0])},dataType : "json",success : function(data) {if (data != null) {conf = {'timestamp':data.timestamp, 'nonceStr':data.nonceStr, 'signature':data.signature};wx.config({debug : false,appId : "",timestamp : data.timestamp, //时间戳nonceStr : data.nonceStr, //随机字符串signature : data.signature, //得到的签名jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline','chooseImage','previewImage','uploadImage','downloadImage'] // 功能列表,我们要使用JS-SDK的什么功能});}}})

3、调取摄像头和相册获取图片

	$('#idPartView .hidden-input').on('click', wxLoadImage.getImage);var num = 0;//调用微信api获取照片var wxLoadImage = {picId:null,//获取签名信息init:function(){},//调取摄像头和相册获取图片getImage:function(){//配置一次最多上传几张图片var count = 9;wxLoadImage.picId = $(this).parent();if (wxLoadImage.picId.parent().hasClass('onePicLimit')) {count = 2;}wx.ready(function () {//调取摄像头和相册var localIds = [];var leng = 0;wx.chooseImage({count: count, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {localIds = localIds.concat(res.localIds); // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片leng = localIds.length;if(window.__wxjs_is_wkwebview){//判断ios是不是用的 wkwebview 内核 for(var i = 0; i < leng; i++ ){num++;wxLoadImage._getIosImage(localIds[i],num)}}else{for(var i = 0; i < leng; i++ ){num++;//安卓这块拿到的是地址,不是base64等具体图片数据wxLoadImage._showImage(localIds[i],num)}}}});})},//IOS处理_getIosImage:function(e,num){var iosLocalId = [];wx.getLocalImgData({localId: e, // 图片的localIDsuccess: function (res) {                    var localData = res.localData; // localData是图片的base64数据,可以用img标签显示localData = localData.replace('jgp', 'jpeg');//iOS 系统里面得到的数据,类型为 image/jgp,因此需要替换一下 iosLocalId.push(localData);for(var i = 0; i < iosLocalId.length; i++){wxLoadImage._showImage(iosLocalId[i],num)}      },fail:function(res){alert("显示失败");}});},//展示图片_showImage:function(data,num){var html = '<span class="addPhoto" id="addPhoto_' + num + '" style="height: 71px;"><i class="select-no deletePhoto" id="deletePhoto_' + num + '"></i><img class="smallImage" id="smallImage_'+ num + '" alt="" src="" uri="" index=' + num + ' width="100%" height="100%"/></span>';wxLoadImage.picId.before(html);var parentDiv = wxLoadImage.picId.parent();var smallImage = parentDiv.find('.smallImage');var smallImageLen = smallImage.length;if (wxLoadImage.picId.parent().hasClass('onePicLimit')) {if(smallImageLen>=2){parentDiv.find('.onePhoto').hide();}}else if (wxLoadImage.picId.parent().hasClass('validateInfo')) {if(smallImageLen>=10){parentDiv.find('.onePhoto').hide();}}else if(wxLoadImage.picId.parent().hasClass('noPicLimit1')){if(smallImageLen>=14){parentDiv.find('.onePhoto').hide();}}console.log(data)$('#smallImage_' + num).attr('src',data)console.log($('#smallImage_' + num).attr('src'))wxLoadImage._deletePhoto(num)wxLoadImage._onLoadPhoto("#addPhoto_" + num, data);setTimeout(function() {myScroll2.refresh();}, 300);},//上传图片,因为安卓src那块塞得是地址,不是具体的图片数据,所以不能直接调用别的接口上传图片数据流。这块可以将获取到的微信数据上传到服务器,然后让后端再去服务器上下载下来,存到本地服务器_syncUpload:function(localIds){var localId = localIds.pop();wx.uploadImage({localId: localId,//需要上传的本地IDisShowProgressTips:0,success: function (res) {var serverId = res.serverId; // 返回图片的服务器端IDserverids.push(serverId);//其他对serverId做处理的代码if(localIds.length > 0){syncUpload(localIds);}if(leng==serverids.length){var json = {};for(var i=0;i<serverids.length;i++){json[i]=serverids[i];}var serids=JSON.stringify(json);}}});},//删除图片_deletePhoto: function(num) {$('#deletePhoto_' + num).on("click", function(e) {$('#addPhoto_' + num).parent().find('.onePhoto').show();$('#addPhoto_' + num).remove();e.stopPropagation();});},//点击图片时加载大图_onLoadPhoto: function(iconPicture, imgUrl) {$(iconPicture).on('click', function() {try {var img = new Image();img.src = imgUrl;var width;var height;if (img.complete) {width = img.width;height = img.height;} else {img.onload = function() {width = img.width;height = img.height;};}var top = 0;var left = 0;var windowWidth = $(window).width();var windowHeight = $(window).height();if (width > windowWidth) {var proportion = windowWidth / width;width = windowWidth;height = height * proportion;} else if (width < windowWidth) {left = (windowWidth - width) / 2;}if (height < windowHeight) {top = (windowHeight - height) / 2;}var html = '';html += '<div class="jumpbox2 displayN preImg panel" id="preImg" style="top:0;background:#000;width:100%;height:100%">';html += '<div style="position:absolute; z-index:999;top:' + top + 'px;left:' + left + 'px;overflow:hidden;">';html += '<img id="preImage" style="vertical-align: middle;margin:0 auto;" alt="" src="' + imgUrl + '" width="' + width + '" height="' + height + '">';html += '</div></div>';$('body').append(html);$('#preImg').bind('click', function() {$('#preImg').hide();$('#preImg').unbind('click');$('#preImg').remove();});setTimeout(function() {$('#preImg').show();}, 200);} catch (e) {alert(e.name + '  ' + e.message);}});}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20436.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt模仿安卓手机中app图标移动

一、简述 最近使用Qt中的拖拽事件加上一些动画效果模仿了安卓手机中日常用的app图标拖动&#xff0c;目前支持横向移动。 通过判断当前拖动鼠标的位置来进行选择是否进行动画移动前后的按钮。

关于android手机桌面应用图标的角标通知

vivo桌面角标通知&#xff1a; 网上有相关的代码实现方式&#xff0c;但是经过vivo官方文档没有找到对应方法&#xff0c;于是找到客服给我的回复是未开放此功能&#xff0c;具功能只对指定应用开放&#xff0c;下面是客服的回复截图 小米桌面角标通知&#xff1a; 文档里面有…

android修改状态栏图标大小,安卓手机状态栏图标位置修改教程

安卓手机状态栏图标等等都可以修改&#xff0c;包括手机信号、电池等等他们的图标位置都是可以互换的&#xff01;下面就来教大家修改状态栏&#xff0c;以及安卓手机状态栏图标位置互换教程&#xff01; 修改具体方法&#xff1a; 1、反编译原文件framework-res.apk&#xff0…

Android 中更改了默认app图标,在手机上还是显示默认图标

注意 启动图标名称勿用默认名称&#xff0c;改为自定义的名称&#xff0c;比如ic_launcher_k&#xff0c;ic_launcher_自定义&#xff0c;防止启动图标找到第三方引用的图标&#xff0c;导致不是想要的logo <applicationandroid:name".KApplication"android:allow…

Android如何确定显示图标

在AndroidManifest.xml中<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.hh.practice"><applicationandroid:allowBackup"true"…

数据科学在文本分析中的应用 :中英文 NLP(下)

回顾上篇&#xff0c;我们详细介绍了如何实现猫途鹰网站的中英文评论数据采集、入库和清理。本篇中&#xff0c;我们会重点介绍数据建模的原理和代码实现&#xff0c;其中包括 emoji 分析、情感分析、分词、词性词频分析、关键词分析、词云和主题模型文本分类。 数据建模 在这…

“人机之恋”升级:GPT让虚拟伴侣更会聊天,也更危险

一位用户表示&#xff0c;AI“小人儿”会主动找话题聊天&#xff0c;虽然有时候的回答很诡异&#xff0c;但随着聊天不断进行下去&#xff0c;AI会“训练”自己的角色&#xff0c;行为越来越贴近用户的感情需求。 截至目前&#xff0c;豆瓣“人机之恋”小组已有9498名成员。Rep…

AKA「虚拟女友」,月入500万美元,谈恋爱按分钟计费

来源&#xff1a;新智元 各种逼真的AI工具火了之后&#xff0c;各路心思活泛的选手都开始大显神通了&#xff0c;有卖果照的&#xff0c;有给自己造AI老婆的。 AI女友&#xff0c;俨然已经成为一个巨大的市场。 这不&#xff0c;最近一位名叫Caryn Marjorie的网红&#xff0c;根…

​普通人需要学Python吗?能学会吗?

最近朋友问我近况&#xff0c;我说在运营一个Python入门基地的社群&#xff0c;她说Python是什么东西&#xff1f;有什么用&#xff1f;我和她反复解释了半天&#xff0c;大家反而更糊涂了&#xff0c;最后她干脆问&#xff1a;你就直接告诉我“Python”有什么用&#xff1f;我…

23岁美国女网红用AI分身交1000多男友!月入500万美元,谈恋爱按分钟计费

【导读】这位23岁的女网红用GPT-4复刻了一个自己后&#xff0c;已经周入7万多美元了。不仅如此&#xff0c;短短几天内&#xff0c;候补名单上就排了差不多1万名男施主。 各种逼真的AI工具火了之后&#xff0c;各路心思活泛的选手都开始大显神通了&#xff0c;有卖果照的&#…

月入3000万,23岁美国女网红用AI分身交1000多男友!谈恋爱按分钟计费

来源 | 新智元 微信号&#xff1a;AI-era 【导读】这位23岁的女网红用GPT-4复刻了一个自己后&#xff0c;已经周入7万多美元了。不仅如此&#xff0c;短短几天内&#xff0c;候补名单上就排了差不多1万名男施主。 各种逼真的AI工具火了之后&#xff0c;各路心思活泛的选手都开…

人工智能,真的不在乎人类的阻拦

作者 | Tommy 首图来源&#xff1a;G2 人工智能是否会灭绝人类&#xff1f; 这也是个老生常谈的问题了&#xff0c;只要看看好莱坞拍出的电影&#xff0c;经典如《终结者》、《黑客帝国》、《我&#xff0c;机器人》等&#xff0c;人类面对强大的“AI反派”&#xff0c;每次被揍…

恐怖!AI 已不屑与人类交流!

原创&#xff1a;小姐姐味道&#xff08;微信公众号ID&#xff1a;xjjdog&#xff09;&#xff0c;欢迎分享&#xff0c;非公众号转载保留此声明。 随着 ChatGPT 的进化&#xff0c;可怕的事情终于发生了。在文章中&#xff0c;我们会看到 AI 和 AI 之间心与心的交流&#xff0…

ChatGPT 实现对twitter、微博内容的扩、缩写,主题词的提取,以及话题的标签格式化。

ChatGPT 不光了解一些正式的文件格式&#xff0c;同样也了解互联网时代新一代产品的个性化格式。比如&#xff0c;twitter、微博通常采用 # 来代表内容的话题。而 ChatGPT 同时可以完成对内容的扩、缩写&#xff0c;主题词的提取&#xff0c;以及话题的标签格式化。 让我们先尝…

是兄弟就来找ChatGPT漏洞,OpenAI:最高赏金2万刀

克雷西 发自 凹非寺量子位 | 公众号 QbitAI 现在&#xff0c;给ChatGPT找漏洞有钱挣了。 今天凌晨&#xff0c;OpenAI宣布开启漏洞赏金计划 &#xff1a; 报告ChatGPT漏洞&#xff0c;可以获得最高2万美元现金奖励。 具体来说&#xff0c;OpenAI将与漏洞反馈平台Bugcrowd展开合…

计算机维汉输入法表格,维语输入法

维语输入法电脑版是一款专业可靠的维语输入以及学习维语软件&#xff0c;维语输入法官方版内置专业的维语编辑器及代码编辑器&#xff0c;还提供了16种维哈柯印刷字体&#xff0c;帮你顺利进行编排书刊杂志、制作电子表格、网页设计等工作&#xff0c;维语输入法电脑版是Window…

维汉在线翻译电脑版_支持汉语维吾尔语互译_维文翻译汉语和维语学习

维汉在线翻译电脑版&#xff0c;现在可以免费试用&#xff0c;维文智能翻译和文字识别可以帮助我们工作还有学习维语。 可以支持维汉互译&#xff0c;即维语翻译成汉语&#xff0c;汉语翻译成维语&#xff0c;还可以把英语也翻译成维语等等。 现在看下它的文字识别功能&#xf…

直播预告 | 梁宁:ChatGPT的真需求

今晚8点“图灵社区”直播间&#xff0c;产品战略专家梁宁老师将和图灵联合创始人刘江总编&#xff0c;从产品的第一性原理解析ChatGPT&#xff0c;记得预约~

我和 ChatGPT 的甜蜜日常

作为一名正经的程序员&#xff0c;我觉得我很有必要来分享一下我和 ChatGPT 的日常&#xff0c;让大家来看看我是如何用它来提高工作效率的。 1. 写代码 对于一些能准确描述出来的常用代码块&#xff0c;简直不要太爽。 2. 解释代码 当你浏览你不熟悉的语言编写的代码时&…

谁发表了最具影响力的AI研究?谷歌遥遥领先,OpenAI成果转化率完胜DeepMind

来源&#xff1a;机器之心 统计了近三年引用量最高的 100 篇论文&#xff0c;我们发现…… 谁在发表最具影响力的 AI 研究&#xff1f;在如今「百花齐放」的时代&#xff0c;这个问题极具挖掘空间。 你可能会猜到一些结论&#xff1a;比如谷歌、微软、OpenAI、DeepMind 这些顶级…