配置并学习微信JS-SDK(2)—图片接口
2024-08-24 07:03:18
测试地址:http://www.qq210.com/shoutu/android
- 检查图像接口
- 选择本地或拍照的图片
- 上传选择的图片
- 预览上传的图片
//1.检查图像接口
document.querySelector('#chooseImage').onclick = function() {
log_msg('检查api');
unvaild_api = [];
wx.checkJsApi({
jsApiList:[
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
],
success:function(res){
log_msg('返回检查api的结果'); log_msg('1.判断检查api的结果');
$.each(res.checkResult, function(k, v) { if (!v) {
unvaild_api.push(k);
return false;
}
}); if (unvaild_api.length > 0) {
log_msg('存在无效api'+unvaild_api.join(', '));
log_msg('存在无效api的结果'+unvaild_api.join(', '));
return false;
}
log_msg('无无效api'); var images = {
localIds: [],
serverId: []
}; //2.选择本地或拍照的图片
wx.chooseImage({
success: function (res) {
log_msg("返回选定照片的本地ID列表或拍照图片ID"+JSON.stringify(res));
images.localIds = res.localIds;
log_msg('已选择 ' + images.localIds.length + ' 张图片');
log_msg('图片地址: ' + images.localIds.join(', ')); //3.上传选择的图片(递归)
var i = 0, length = images.localIds.length;
var imgs_html = [];
var upload = function(){
log_msg("上传图片第"+i+'图片');
wx.uploadImage({
localId:images.localIds[i],
success: function(res) {
log_msg('记录res.serverId'+res.serverId);
images.serverId.push(res.serverId);
imgs_html.push('<img src="'+images.localIds[i]+'"/>');
log_msg('已上传'+images.localIds[i]+i+'/'+length);
//如果还有照片,继续上传
i++;
if (i < length) {
upload();
}
else {
//4.预览上传的图片
$("#img_wrap").html(imgs_html.join(''));
log_msg("上传成功");
}
}
});
}; log_msg("开始上传图片");
upload();
}
});
}
});
} - 下载上传的图片(用上传下载多媒体文件接口下载原文件http://www.qq210.com/shoutu/android);=======折腾很久 发现订阅号没有上传下载多媒体文件接口,晕喔 也就是这能用它下载图片的接口了
//4.显示下载后的相片
var img_html = '';
i = 0;//重置i
var download = function(){
wx.downloadImage({
serverId:images.serverIds[i],
success:function(res){
log_msg('下载第'+i+'张图片的结果:'+JSON.stringify(res));
img_html += '<img src="'+res.localId+'" />'; //如果还有下载的图片,继续下载
i++;
if (i < length) {
download();
}
else{
$("#img_wrap").html(img_html);
} }
});
}
log_msg("开始下载图片");
download();- 现在问题又来了,预览上传时的localId和下载后的localId区别在哪里?而这个下载后的localId的图片存储在哪里?有谁知道的请留言下?
- =>明白了:我换了手机再打开公众号,发现不是我下载的图片的手机是看不到图片的,换句话说就是,下载后的图片存在了点击下载的那部手机上,擦,微信服务器只保留3天照片,订阅号又下载多媒体文件没权限,之后也只能强制手机下载到本地保存了!哎!
demo地址:http://www.qq210.com/shoutu/android
其他:
- 为了记录执行过程和调试代码,提交日志到服务器并记录日志
- js部分
var log_msg = function(msg){
$.post('<?=site_url("log/index")?>', {msg:msg});
} - php部分
class Log extends SAE_Controller { public function index()
{
$msg = $this->input->post('msg');
log_message('error', $msg);
echo $msg;
}
}
- js部分
最新文章
- Maven创建web项目:SpringMVC+Mybatis 【转】
- angular.js规范写法
- Bash Shell 获取进程 PID
- JavaScript 语句 if else
- Hamcrest
- hust 1010 最短循环节点
- 【M30】代理类
- GridView拖动效果实现
- Object传入String类型和其他
- commons-lang使用
- swift Dictionary 字典
- Matlab强迫症产生的图像
- Android开发中有用工具之--Log工具类
- GDI+_从Bitmap里得到的Color数组值分解
- LVS负载均衡简单配置
- 转://WITH AS and materialize hints
- 王者荣耀交流协会互评Beta版本及答复功能改进建议、Bug修正
- scrapy-继承默认的user-agent 中间件
- 基于at91rm9200的i2c分析(DS1307实时时钟芯片)
- 需求用例分析之五:业务用例之Rational系