标签:rom 图片上传 highlight 目录 script switch bsp 导出文件 reject
小程序图片上传封装
app.js中 写入
wxPromisify(fn) {
return function (obj = {}) {
return new Promise((resolve, reject) => {
obj.success = function (res) {
resolve(res)
}
obj.fail = function (res) {
reject(res)
}
fn(obj)//执行函数,obj为传入函数的参数
})
}
}
在utils文件夹下新建mediaUtils.js文件
let app = getApp(); var chooseImage = app.wxPromisify(wx.chooseImage) // 从本地相册选择图片或使用相机拍照 var chooseVideo = app.wxPromisify(wx.chooseVideo) // 拍摄视频或从手机相册中选视频 var getImageInfo = app.wxPromisify(wx.getImageInfo) // 获取图片信息
图片上传临时信息目录
// 获取图片临时目录信息
function getImagePath(count, sizeNum, sourceNum) {
let sizeType = []
switch (sizeNum) {
case ‘1‘:
sizeType = ["original"];
break;
case ‘2‘:
sizeType = ["compressed"];
break;
default:
sizeType = [‘original‘, ‘compressed‘];
break;
}
let sourceType = []
switch (sourceNum) {
case ‘1‘:
sourceType = ["album"];
break;
case ‘2‘:
sourceType = ["camera"];
break;
default:
sourceType = [‘album‘, ‘camera‘];
break;
}
let ref = false;
return new Promise(function(resolve, reject) {
chooseImage({
count: count, //最多可以选择的图片张数
sizeType: sizeType, //所选的图片的尺寸
sourceType: sourceType, //选择图片的来源
}).then(res => {
resolve(res)
})
})
}
从本地相册选择图片或使用相机拍照
function getImageObj(count, sizeNum, sourceNum) {
return new Promise(function(resolve, reject) {
getImagePath(count, sizeNum, sourceNum).then(res => {
if (res.tempFiles.length > 0) {
var promise = Promise.all(res.tempFiles.map((item, index) => {
return new Promise(function(resolve, reject) {
let image = {
size: item.size
}
getImageInfo({
src: item.path
}).then(res => {
image.sizeStr = getImageSize(image.size)
image.width = res.width
image.height = res.height
image.path = res.path
image.type = res.type
resolve(image);
})
});
})).then(res => {
resolve(res)
})
}
})
})
}
获取图片大小MB
var getImageSize = function(size) {
var sizeNum = size / 1024
if (sizeNum > 1024) {
sizeNum = (sizeNum / 1024).toFixed(2) + "MB"
} else {
sizeNum = sizeNum.toFixed(2) + "KB"
}
return sizeNum
}
上传视频、获取视频信息
function getVideoInfo(sourceTypeNum, maxDuration, compressed) {
let sourceType = []
switch (sourceTypeNum) { //视频选择的来源
case 1:
sourceType = [‘album‘]
break;
case 2:
sourceType = [‘camera‘]
break;
default:
sourceType = [‘album‘, ‘camera‘]
break;
}
console.log(sourceType, sourceTypeNum)
return new Promise(function(resolve, reject) {
chooseVideo({
sourceType: sourceType,
compressed: compressed, //是否压缩所选择的视频文件
maxDuration: maxDuration //拍摄视频最长拍摄时间,单位秒 默认60
}).then(res => {
res.path = res.tempFilePath //选定视频的临时文件路径 (本地路径)
res.type = res.path.substring(res.path.lastIndexOf(‘.‘) + 1)
res.cover = res.thumbTempFilePath
resolve(res)
})
})
}
最后导出文件
module.exports = {
getImagePath: getImagePath,
getImageObj: getImageObj,
getImageInfo: getImageInfo,
getVideoInfo: getVideoInfo
};
标签:rom 图片上传 highlight 目录 script switch bsp 导出文件 reject
原文地址:https://www.cnblogs.com/BySee1423/p/12613323.html