美文网首页
微信小程序 - 10.图片上传

微信小程序 - 10.图片上传

作者: GiottoYLY | 来源:发表于2020-03-17 15:15 被阅读0次

    wx.chooseImage
    从本地相册选择图片或使用相机拍照
    属性名 类型 默认值 说明
    count number 9 最多可选择的图片张数
    sizeType Array.<String> ['original' , 'compressed'] 所选的图片尺寸 : original : 原图 ; compressed : 压缩图
    sourceType Array.<String> ['album' , 'camera'] 选择图片的来源 : album : 从相册选图 ; camera : 使用相机 ;
    success function 接口调用成功的回调函数 , 1. 返回 : tempFilePaths(Array.<String>) : 2. 图片本地的临时文件路径列表(本地路径) ; 3. tempFiles(Array.<String>) : 图片的本地临时文件列表
    fail function 接口调用失败的回调函数
    complete function 接口调用结束的回调函数(调用成功、失败都会执行)

    res.tempFiles 的结构

    属性名 类型 说明
    path string 本地临时文件路径(本地路径)
    size number 本地临时文件大小 , 单位B

    布局文件 : wxml

    <view class="question-form">
          <!-- 问题标题 -->
          <view class="question-input-area">
               <view class="question-title-area">
                    <!-- 标题输入框 -->
                    <input class="question-title" placeholder="请输入标题" maxlength="40" placeholder-style="color:#b3b3b3;font-size:18px;" bindinput="handleTitleInput"></input>
               </view>
               <!-- 问题正文区域 -->
               <view class="content-area">
                    <!-- 多行输入框 -->
                    <textarea class="content-text-area" placeholder="请输入问题的正文内容" maxlength="500" placeholder-style="color:#b3b3b3;font-size:14px" style="height:12rem" bindinput="handleContentInput"></textarea>
               </view>
           </view>
           <!-- 拍照选照按钮 -->
           <view class="question-images-area">
               <!-- 添加图片按钮 -->
               <view class="question-images-tool">
                     <button type="default" size="mini" bindtap="chooseImage" wx:if="{{images.length<3}}">添加图片</button>
               </view>
               <!-- 图片缩略图 -->
               <view class="question-images">
                     <block wx:for="{{images}}" wx:key="*this">
                            <view class="q-image-wrap">
                                 <image class="q-image" src="{{item}}" mode="aspectFill" data-idx="{{index}}" bindtap="handleImagePreview"></image>
                                 <view class="q-image-remove" data-idx="{{index}}" bindtap="removeImage"></view>
                            </view>
                     </block>
               </view>
            </view>
            <!-- 提交表单按钮 -->
           <button class="submit-btn" type="primary" bindtap="submitForm">提交</button>
    </view>
    

    样式文件wxss

    /* 问题布局 */
    .question-form{
        margin: 25rpx;
    }
    .question-input-area{
        background: #fff;
        border: 1rpx solid #f2f2f2;
        border-radius: 4rpx;
    }
    .question-title-area{
        display: flex;
        align-items:center;
        border-bottom: 1rpx solid #ccc;
        margin: 10rpx 30rpx;
        padding: 20rpx 0;
    }
    .question-title{
        flex: 1;
    }
    .content-area{
        padding: 20prx;
        margin: 20rpx 30rpx;
    }
    /* 图片布局 */
    .question-images-area{
        padding: 40rpx 0;
    }
    .question-images-tool{
        display: flex;
        align-items: center;
    }
    .question-images{
        display: flex;
        align-items: center;
        margin-top: 40rpx;
    }
    .q-image-wrap{
        width: 31%;
        margin-right: 10rpx;
    }
    .q-image{
        flex: 1;
        height: 200rpx;
        width: 100%;
    }
    .q-image-remove{
        text-align: center;
    }
    /* 提交表单按钮 */
    .submit-btn{
    }
    

    逻辑页面 : js

    Page({
    /**
    * 页面的初始数据
    */
    data: {
        title:'',//标题内容
        content:'',//正文内容
        images:[]//图片
    },
    //选择图片
    chooseImage:function(e){
        var that = this
        wx.chooseImage({
            count:3,
            sizeType: ['original', 'compressed'],
            sourceType: ['album', 'camera'],
            success: function(res) {
                const images = that.data.images.concat(res.tempFilePaths)
                that.data.images = images.length<=3 ? images : images.slice(0,3)
                that.setData({
                    images: images
                })
           },
        })
    },
    handleImagePreview:function(e){
        const idx = e.target.dataset.idx
        const images = this.data.images
        wx.previewImage({
            current: images[idx],
            urls: images
        })
    },

    相关文章

      网友评论

          本文标题:微信小程序 - 10.图片上传

          本文链接:https://www.haomeiwen.com/subject/orytyhtx.html