info
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
class UploaderFile {
|
||||
constructor(props = {}) {
|
||||
if (!props.name || !props.mediaType || !props.originUrl) {
|
||||
throw new Error('缺少必要字段')
|
||||
}
|
||||
|
||||
this.id = props.id // id
|
||||
this.name = props.name // originalName
|
||||
this.size = props.size // fileSize
|
||||
this.mediaType = props.mediaType // type
|
||||
this.fileType = props.fileType // fileType
|
||||
this.originUrl = props.originUrl // url
|
||||
this.thumbUrl = props.thumbUrl // thumbUrl
|
||||
this.attributes = props.attributes || {} // description, alt
|
||||
|
||||
this.url = '' // fileId
|
||||
this.status = 'waiting' // waiting, uploading, uploaded, failed
|
||||
this.percent = 0 // 0-100
|
||||
this.error = null
|
||||
}
|
||||
|
||||
setError (error) {
|
||||
this.error = error
|
||||
}
|
||||
|
||||
setUrl (url) {
|
||||
this.url = url
|
||||
}
|
||||
|
||||
setPercent (percent) {
|
||||
this.percent = percent
|
||||
}
|
||||
|
||||
setStatus (status) {
|
||||
this.status = status
|
||||
}
|
||||
|
||||
setAttributes (attributes = {}) {
|
||||
if (attributes.fileType) {
|
||||
this.fileType = attributes.fileType
|
||||
}
|
||||
|
||||
if (attributes.size) {
|
||||
this.size = attributes.size
|
||||
}
|
||||
|
||||
this.attributes = attributes
|
||||
}
|
||||
getFileType () {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.fileType) {
|
||||
return resolve(this.fileType)
|
||||
}
|
||||
|
||||
// #ifdef H5
|
||||
this.fileType = this.name.split('.').pop()
|
||||
resolve(this.fileType)
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
uni.getImageInfo({
|
||||
src: this.originUrl,
|
||||
success(info) {
|
||||
this.fileType = info.type.toLowerCase()
|
||||
resolve(this.fileType)
|
||||
},
|
||||
fail(err) {
|
||||
reject(new Error(err.errMsg || '未能获取图片类型'))
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export default UploaderFile
|
||||
Reference in New Issue
Block a user