小程序实现图片预览+上传

简介: 小程序实现图片预览+上传

废话不多说,直接上代码。我这里是mpvue的写法,可能与原生的小程序有部分不一样的,请注意。

// 选择图片
avatarChoose() {
   
 var that = this 
 wx.showActionSheet({
   
   itemList: ['从手机相册选择'],
   success: function(res) {
   
     //选择照片     
     wx.chooseImage({
   
      count: 1, // 选择图片张数,默认9
      sizeType: ['compressed'], // 可以指定是原图original还是压缩图compressed,默认二者都有
      sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
   
        console.info(res)
        var size = res.tempFiles[0].size  //获取图片的大小,单位B
        var path = res.tempFiles[0].path;
        var formatImage = path.split(".")[(path.split(".")).length - 1];
        if(size > 1024*1024){
      //图片大于指定大小时,提示错误
          that.errorMsg = '图片超出1M大小'
          res.tempFiles[0] = null
          res.tempFilePaths[0] = null
        }else if (formatImage != "png" && formatImage != "jpg" && formatImage != "jpeg") {
    //判断图片类型,实际上在手机上操作不需要这一步判断
          that.errorMsg = '图片格式只支持png、jpg、jpeg'
          res.tempFiles[0] = null
          res.tempFilePaths[0] = null
        }else{
                                       
          var tempFilePaths = res.tempFilePaths[0] //不能传数组,要获取下标0的图片                                
          that.pageForm.avatar = tempFilePaths  //把图片的临时路径赋值给我们定义好的变量
          that.errorMsg = '' //将错误提示置空
        }
      }
    })
   }
 })
},
onSubmit(values) {
   
 let that = this 
 // 必要的参数合法性验证,此处省略

 wx.uploadFile({
    //上传文件固定用法,不要使用 wx.request
     url: that.baseUrl+'xxx', //后台url,需要在微信公众号平台的uploadFile配置https的域名
     filePath: that.pageForm.avatar, //图片路径
     method: 'POST',//方法POST、PUT、DELETE、GET
     name: 'file', //后台获取的凭据,与后台一致
     header: {
   
         "Content-Type":"multipart/form-data;charset=utf-8" //上传文件的请求头,固定写法
     },
     formData: that.pageForm,//其它参数
     success (res) {
    //上传成功
         console.info(res)
         //其它逻辑请自行添加,比如页面跳转,弹出提示框等
     },                   
     fail: function (res) {
    //上传失败
         console.error(res)
         Toast('操作失败')                   
     }
 })
},

页面上引用

<!--其它字段省略,可自行添加-->
<!--实现图片预览-->
<div class="avatar" @click="avatarChoose">
    <img :src="pageForm.avatar"/>
</div>
<!--提交-->
<button class="btn" @click="onSubmit">立即提交</button>
相关文章
|
5月前
|
小程序 JavaScript
微信小程序图片预览功能?
微信小程序图片预览功能?
|
5月前
|
小程序
微信小程序wx.previewImage实现图片预览
微信小程序wx.previewImage实现图片预览
653 0
|
小程序 JavaScript
微信小程序实现图片预览
wxml页面部分 js部分
|
UED 索引
微信小程序 图片上传 图片预览
先看下效果图吧,不得不说 微信小程序的设计真的很好!用户体验也很好~ image.png image.png 拍照和上传照片 官网讲的很详细 image.
2115 0
微信小程序开发之图片预览
实现图片的展示和大图预览 使用wx.previewImage(OBJECT)来实现 OBJECT参数说明: 参数 类型 必填 说明 current String 否 当前显示图片的链接,不填则默认为 urls 的第一张 urls StringArray 是 需要预览...
1832 0
|
2月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
60 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
2月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
61 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
2月前
|
存储 小程序 JavaScript
|
2月前
|
小程序 前端开发 安全
|
3月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
43 7
下一篇
无影云桌面