Appearance
文件上传
版本说明
时间 | 修改人 | 备注 |
---|---|---|
2022-12-05 | LZJ | 初始化文档 |
一、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);
},
});
});
}
注意:
- 示例中的
upLoadImg
方法,arrImg
是vant-upload
绑定的值; - 示例中的
upLoadImg
方法,判断回显的字段short_line
是数据回显自己添加的;
二、OSS 上传
- 该方式适用于大文件上传
以上传图片为例
使用示例:
- 引入方法
js
import useOss from "/src/libs/oss/useOss/useOss.1.0.0.js";
- 调用
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);
}
}
});
}
注意:
- 示例中的
upLoadImgOss
方法,arrFile
是vant-upload
绑定的值; - 示例中的
upLoadImgOss
方法,判断回显的字段short_line
是数据回显自己添加的;
useOss.1.0.0.js 说明:
useOss.ossUpload
- 需要有获取 oss 配置接口
option
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
url | 文件 url,本地路径 | String | 必填 |
name | 文件名称 | String | 'file*' + 当前时间戳 + '*' + 8 位随机字符串 |
size | 文件大小,文件超出该大小无法上传,单位:MB | Number | 50 |
onProgress | 监听上传进度回调 | Function | - |
三、项目示例
uni-app 项目:svn://39.107.13.238:12580/base_digi
- 获取 oss 配置接口位置:
/_uniapp/src/libs/useOss.1.0.0.js - 示例位置:
/_uniapp/src/pages/demo/add/wxapp/add.vue
/_uniapp/src/pages/demo/add/wxapp/edit.vue (回显)