Skip to content

文件上传

版本说明

时间修改人备注
2022-12-05LZJ初始化文档

一、base64 上传

  • 该方式适用于小文件上传,项目中一般用于较小的图片上传
  • 公共上传接口:comm/upload/index

使用示例:

1. 引入上传接口

import {uploadFile} from '/src/js/demo/demo.js';

2. 调用

js
//base64上传
function upLoadImg(arrImg) {
  return new Promise(async (resolve) => {
    let arrUrl = [];
    for (let i = 0; i < arrImg.length; i++) {
      let it = arrImg[i];
      if (it.short_line) {
        //如果是回显的图片不做上传
        arrUrl.push(it.short_line);
      } else {
        let base64 = await imageBaseUrl(it.url);
        let data = await uploadFile({
          base64img: base64,
          path: "digi_demo",
        });
        arrUrl.push(data.result.filename);
      }
      if (arrUrl.length == arrImg.length) {
        resolve(arrUrl);
      }
    }
  });
}

//图片转化base64
function imageBaseUrl(url) {
  return new Promise((resolve) => {
    wx.getFileSystemManager().readFile({
      filePath: url,
      encoding: "base64",
      success: function (data) {
        let baseUrl = `data:image/png;base64,${data.data}`;
        resolve(baseUrl);
      },
    });
  });
}

注意:

  1. 示例中的upLoadImg方法,arrImgvant-upload绑定的值;
  2. 示例中的upLoadImg方法,判断回显的字段short_line是数据回显自己添加的;

二、OSS 上传

  • 该方式适用于大文件上传

以上传图片为例

使用示例:

  1. 引入方法
js
import useOss from "/src/libs/oss/useOss/useOss.1.0.0.js";
  1. 调用
js
//oss上传
function upLoadImgOss(arrFile) {
  return new Promise(async (resolve) => {
    let arrUrl = [];
    for (let i = 0; i < arrFile.length; i++) {
      let it = arrFile[i];
      if (it.short_line) {
        arrUrl.push(it.short_line);
      } else {
        let res = await useOss.ossUpload({
          url: it.url,
          onProgress: (p) => {
            console.log(p);
          },
        });
        console.log(res, "res");
        arrUrl.push(res.filePath);
      }

      if (arrUrl.length == arrFile.length) {
        resolve(arrUrl);
      }
    }
  });
}

注意:

  1. 示例中的upLoadImgOss方法,arrFilevant-upload绑定的值;
  2. 示例中的upLoadImgOss方法,判断回显的字段short_line是数据回显自己添加的;

useOss.1.0.0.js 说明:

useOss.ossUpload

  • 需要有获取 oss 配置接口

option

参数说明类型默认值
url文件 url,本地路径String必填
name文件名称String'file*' + 当前时间戳 + '*' + 8 位随机字符串
size文件大小,文件超出该大小无法上传,单位:MBNumber50
onProgress监听上传进度回调Function-

三、项目示例

uni-app 项目:svn://39.107.13.238:12580/base_digi

  1. 获取 oss 配置接口位置:
    /_uniapp/src/libs/useOss.1.0.0.js
  2. 示例位置:
    /_uniapp/src/pages/demo/add/wxapp/add.vue
    /_uniapp/src/pages/demo/add/wxapp/edit.vue (回显)