@df8080/vue2-ui
Version:
🎨 一个基于 Vue 2 的 UI 组件库,目前主要面向微信小程序开发场景,也适用于其他移动端项目。
76 lines (69 loc) • 1.51 kB
JavaScript
/**
* @description 获取文件扩展名
* @param url 文件地址
* @return 扩展名
*/
export const getFileExtension = (url) => {
const match = url.match(/\.([a-zA-Z0-9]+)(?=\?|$)/)
return match ? match[1] : null
}
/**
* @description 预览文件
* @param url 文件地址
*/
export const previewFile = (url) => {
const fileType = getFileExtension(url)
if (!fileType) {
console.error('不合法的文件类型')
return
}
return new Promise((resolve, reject) => {
const fail = () => {
uni.showToast({ title: '预览失败,请重试', icon: 'none' })
reject()
}
uni.downloadFile({
url,
success: (res) => {
const filePath = res.tempFilePath
uni.openDocument({
filePath,
fileType,
success: () => {
resolve()
},
fail,
})
},
fail,
})
})
}
/**
* @description 分享文件
* @param url 文件地址
* @param fileName 文件名
*/
export const shareFile = (url, fileName) => {
return new Promise((resolve, reject) => {
const fail = () => {
uni.showToast({ title: '分享文件失败,请重试', icon: 'none' })
reject()
}
uni.downloadFile({
url,
success: (res) => {
const filePath = res.tempFilePath
wx.shareFileMessage({
filePath,
fileName,
success() {
resolve()
},
fail,
})
},
fail,
})
})
}