微信小程序的附件上传与预览
文件与图片上传
wx.chooseMessageFile({
count: 10,
type: 'file',
success(res) {
// tempFilePath可以作为img标签的src属性显示图
const tempFilePaths = res.tempFiles;
var wjpath = tempFilePaths[0].path;
var fname = tempFilePaths[0].name;
var hz = tempFilePaths[0].type;
console.log(wjpath, fid, fromid, "tempFilePaths");
wx.getFileSystemManager().readFile({
filePath: wjpath,
encoding: 'base64',
success: res => {
console.log(res.data, "wjbase64");
request({
url: "上传的url",
method: "POST",
data: {
FileName: fname,
FormId: fromid,
FId: fid,
BillNO: bno,
AliasFileName: hz,
SendByte: res.data
}
}).then(res => {
let resdata = JSON.parse(res);
console.log(resdata, "resdata");
if (resdata.Result.ResponseStatus.IsSuccess) {
wx.showToast({
title: '上传成功',
icon: 'success',
duration: 200
})
this.Lookfilelist(this.data.fid);
} else {
wx.showModal({
title: '提示',
content: "上传失败" + resdata.Result.ResponseStatus.Errors[0].Message,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
}
})
}
})
图库上传
wx.chooseMedia({
count: 1,
mediaType: ['image', 'video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success: res => {
console.log(res);
var imagepath = res.tempFiles[0].tempFilePath;
var imagetype = res.tempFiles[0].fileType;
console.log(imagepath, imagetype, "---");
wx.getFileSystemManager().readFile({
filePath: imagepath, //选择图片返回的相对路径
encoding: 'base64', //编码格式
success: (res) => {
wx.showLoading({
title: "上传中",
mask: true
});
let baseImg = res.data;
console.log(baseImg, "baseImg");
request({
url: "上传的url",
method: "POST",
data: {
FileName: "图库图片.jpg",
FormId: fromid,
FId: fid,
BillNO: bno,
AliasFileName: "jpg",
SendByte: baseImg
}
}).then(res => {
let resdata = JSON.parse(res);
console.log(resdata, "resdata");
if (resdata.Result.ResponseStatus.IsSuccess) {
wx.showToast({
title: '上传成功',
icon: 'success',
duration: 2000
})
this.Lookfilelist(this.data.fid);
} else {
wx.showModal({
title: '提示',
content: "上传失败" + resdata.Result.ResponseStatus.Errors[0].Message,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
wx.hideLoading();
}
})
}
})
预览,--调用api返回base64格式保存到临时路径在预览
request({
url: "调用api" ,
method: "POST",
}).then(res => {
let redata = JSON.parse(res);
var fjnaeme = redata.Result.FileName;
// 假设base64ImageData是你的base64格式图片数据
var base64ImageData = redata.Result.FilePart;
console.log(redata, "base64ImageData");
const base64 = base64ImageData;
const time = new Date().getTime();
const path = wx.env.USER_DATA_PATH + "/" + fjnaeme;
const file = wx.getFileSystemManager();
file.writeFileSync(path, base64, "base64");
console.log(path, "path");
var sj = fjnaeme.substring(fjnaeme.indexOf(".") + 1, fjnaeme.length);
var mc = fjnaeme.substring(fjnaeme.indexOf("."), 0);
console.log(sj, "sj", mc);
if (sj == "doc" || sj == "docx" || sj == "xls" || sj == "xlsx" || sj == "ppt" || sj == "pptx" || sj == "pdf") {
this.openFile(path, sj);、、文件预览方法
} else {
this.openimage(path);//图片预览方法
}
})
openFile(filePath, fileType) {
wx.openDocument({
filePath: filePath, // 装载对应文件的路径
fileType: fileType, // 指定打开的文件类型
showMenu: true, // 右上角的菜单转发分享操作
success: function (res) {
console.log("打开成功");
},
fail: function (res) {
console.log(res);
wx.showToast({
type: 'error',
title: '该格式不支持浏览',
icon: 'fail',
duration: 2000
})
}
})
},
openimage(filePath) {
wx.previewImage({
current: 1,
urls: [
filePath
], //imgUrl 必须是需要预览的图片链接列表,只有一张图片也需要是列表
success: (res => {
console.log('接口调用成功', res)
}),
fail: function (res) {
console.log(res);
wx.showToast({
type: 'error',
title: '该格式不支持浏览',
icon: 'fail',
duration: 2000
})
}
})
},