49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
const formatTime = date => {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
const hour = date.getHours()
|
|
const minute = date.getMinutes()
|
|
const second = date.getSeconds()
|
|
return (
|
|
[year, month, day].map(formatNumber).join('/') +
|
|
' ' +
|
|
[hour, minute, second].map(formatNumber).join(':')
|
|
)
|
|
}
|
|
|
|
const formatNumber = n => {
|
|
n = n.toString()
|
|
return n[1] ? n : '0' + n
|
|
}
|
|
|
|
const fsm = wx.getFileSystemManager()
|
|
const FILE_BASE_NAME = 'tmp_base64src'
|
|
|
|
const base64src = function (base64data) {
|
|
return new Promise((resolve, reject) => {
|
|
const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || []
|
|
if (!format) {
|
|
reject(new Error('ERROR_BASE64SRC_PARSE'))
|
|
}
|
|
const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`
|
|
const buffer = wx.base64ToArrayBuffer(bodyData)
|
|
fsm.writeFile({
|
|
filePath,
|
|
data: buffer,
|
|
encoding: 'binary',
|
|
success() {
|
|
resolve(filePath)
|
|
},
|
|
fail() {
|
|
reject(new Error('ERROR_BASE64SRC_WRITE'))
|
|
},
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
formatTime: formatTime,
|
|
base64src,
|
|
}
|