当前位置: 主页 > 建站知识 > 小程序

小程序上传-小程序上传图片到oss

发布时间:2023-01-26 22:02   浏览次数:次   作者:佚名

小程序图片上传: 要求:

点击上传和删除选中图片功能

例子:

在这里插入图片描述

分析过程:

1.首先使用tt.chooseImage()选择上传的图片,获取选择图片的网络地址。

2. 然后使用tt.uploadFile()将选中的图片上传到项目后台。

3、其次小程序上传,使用tt.previewImage()实现页面图片预览功能。

4、最后在页面预览中出现图片时小程序上传,自定义删除图片按钮,data中设置图片文件地址为''。

1.HTML

<view class="container">
    <view class="main">
        <view class="title">上传图片</view>
        <!-- 点击上传前的页面 -->
        <view class="content" tt:if="{{!imgPreview}}" bindtap="handleUploadImg">
            <text class="plus">+</text>
        </view>
        <!-- 点击上传后的页面 -->
        <view class="selectImg" tt:if="{{imgPreview}}">
            <view class="deleteBox" bindtap="deleteImg">
                <view class="deleteBtn">x</view>
            </view>
            <image class="img" src="{{imgPreview}}" bindtap="previewImg">

小程序上传_小程序上传图片到oss_小程序上传图片模板

</view> </view> </view>

2. CSS

.container {
  width: 100%;
}
.main {
  display: flex;
  padding: 0 16px;
  flex-direction: column;
  background-color: #fff;
}
.title {
  margin: 16px;
}
.content {
  width: 80px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;

小程序上传图片模板_小程序上传_小程序上传图片到oss

margin: 16px; background-color: #eee; border: 1px dashed #ddd; border-radius: 4px; } .selectImg { position: relative; } .selectImg .img { width: 80px; height: 80px; border-radius: 4px; overflow: hidden; object-fit: contain; margin: 16px; } .deleteBox { position: absolute; top: 20px; left: 74px; width: 16px; height: 16px; line-height: 14px;

小程序上传_小程序上传图片到oss_小程序上传图片模板

text-align: center; border-radius: 50%; background-color: #a59f99; } .deleteBtn { color: #fff; }

3.JS

Page({
  data: {
    imgPreview: ''
  },
  onLoad: function () {
  },
  // 选择并上传
  handleUploadImg: function() {
    const that = this
    // 从相册或相机拍摄
    tt.chooseImage({
      sourceType: ["album", "camera"], // PC端无效
      count: 1,//最多可选择的图片数量

小程序上传_小程序上传图片到oss_小程序上传图片模板

sizeType: ["compressed"], //图片压缩 success: (res) => { console.log('res: ', res); const previewData = res.tempFilePaths[0] //得到选择图片的网络地址 http://127.0.0.1:3000/.....IMG917.jpeg // 将本地文件上传到网络 tt.uploadFile({ url: 'https://......./service/rest/tk.File/collection/upload', //项目的文件上传接口地址 filePath: res.tempFilePaths[0], // 本地文件路径 name: 'file', // HTTP请求的文件名 success: (res) => { console.log('res: ', res); if(res.statusCode === 200) { that.setData({ imgPreview: previewData }) } } }); } }); }, // 预览图片

小程序上传图片到oss_小程序上传_小程序上传图片模板

previewImg: function() { const { imgPreview } = this.data let url = imgPreview tt.previewImage({ urls: [url], // 图片地址列表 current: 1, //默认显示的图片的地址 success: (res) => { console.log('预览调用成功'); }, fail: (res) =>{ console.log('预览调用失败'); } }); }, // 删除选中的图片 deleteImg: function() { const { imgPreview } = this.data this.setData({ imgPreview: '' }) } });