提交 e3293515 authored 作者: pengxiaohui's avatar pengxiaohui

限制附件和视频大小

上级 e401f4a7
...@@ -9,6 +9,37 @@ const splitStrLast = function(str, split) { ...@@ -9,6 +9,37 @@ const splitStrLast = function(str, split) {
const last = fileNameArr[fileNameArr.length - 1] const last = fileNameArr[fileNameArr.length - 1]
return last return last
} }
const fetchUpload = function(file, callback) {
const loading = Loading.service({
lock: true,
text: '视频上传中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)',
customClass: 'tinymce-el-loading'
})
const fileName = file.name
const key = 'upload/cms-admin/' + md5(fileName + new Date().getTime()) + fileName.substr(fileName.lastIndexOf('.'))
getSignature()
.then(response => {
const { accessid, policy, signature, host } = response
const data = { key, OSSAccessKeyId: accessid, policy, signature, success_action_status: '200' }
const fileUrl = `${host}/${key}`
const formData = new window.FormData()
formData.append('key', data.key)
formData.append('OSSAccessKeyId', data.OSSAccessKeyId)
formData.append('policy', data.policy)
formData.append('signature', data.signature)
formData.append('success_action_status', '200')
formData.append('file', file)
fileUpload(formData).then(res => {
loading.close()
callback(fileUrl, { title: file.name })
}).catch(err => Message({ message: err.message || '上传上传出错了', type: 'error', customClass: 'tinymce-el-message' }))
})
.catch(err => {
console(err)
})
}
/** /**
* 视频上传 * 视频上传
* @param {function} callback 上传结束回调 * @param {function} callback 上传结束回调
...@@ -22,43 +53,23 @@ export function mediaUpload(callback, value, meta) { ...@@ -22,43 +53,23 @@ export function mediaUpload(callback, value, meta) {
input.setAttribute('accept', '.mp4') input.setAttribute('accept', '.mp4')
input.onchange = function() { input.onchange = function() {
const file = this.files[0] const file = this.files[0]
let errorMsg = ''
if (file && file.name) { if (file && file.name) {
const suffix = splitStrLast(file.name, '.') const suffix = splitStrLast(file.name, '.')
if (['mp4'].includes(suffix)) { if (['mp4'].includes(suffix)) {
const loading = Loading.service({ if (file.size > 1000 * 1000 * 1000) {
lock: true, errorMsg = '视频文件大小不能超过 1GB!'
text: '视频上传中', }
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)',
customClass: 'tinymce-el-loading'
})
const fileName = file.name
const key = 'upload/cms-admin/' + md5(fileName + new Date().getTime()) + fileName.substr(fileName.lastIndexOf('.'))
getSignature()
.then(response => {
const { accessid, policy, signature, host } = response
const data = { key, OSSAccessKeyId: accessid, policy, signature, success_action_status: '200' }
const fileUrl = `${host}/${key}`
const formData = new window.FormData()
formData.append('key', data.key)
formData.append('OSSAccessKeyId', data.OSSAccessKeyId)
formData.append('policy', data.policy)
formData.append('signature', data.signature)
formData.append('success_action_status', '200')
formData.append('file', file)
fileUpload(formData).then(res => {
loading.close()
callback(fileUrl, { title: file.name })
}).catch(err => Message({ message: err.message || '上传上传出错了', type: 'error', customClass: 'tinymce-el-message' }))
})
.catch(err => {
console(err)
})
} else { } else {
Message({ message: '只支持mp4格式的视频文件', type: 'error', customClass: 'tinymce-el-message' }) errorMsg = '只支持mp4格式的视频文件'
} }
} else { } else {
Message({ message: '请选取视频文件', type: 'error', customClass: 'tinymce-$message' }) errorMsg = '请选取视频文件'
}
if (errorMsg) {
Message({ message: errorMsg, type: 'error', customClass: 'tinymce-el-message' })
} else {
fetchUpload(file, callback)
} }
} }
// 触发点击 // 触发点击
......
...@@ -349,10 +349,14 @@ export default { ...@@ -349,10 +349,14 @@ export default {
const typeList = ['doc', 'docx', 'pdf', 'xls', 'xlsx'] const typeList = ['doc', 'docx', 'pdf', 'xls', 'xlsx']
if (!typeList.includes(suffix)) { if (!typeList.includes(suffix)) {
errorMsg = '上传附件格式错误,只允许word/excel/pdf格式' errorMsg = '上传附件格式错误,只允许word/excel/pdf格式'
} else if (file.size > 50 * 1000 * 1000) {
errorMsg = '附件大小不能超过 50MB'
} }
} else { } else {
if (suffix !== 'mp4') { if (suffix !== 'mp4') {
errorMsg = '上传附件格式错误,只允许mp4格式' errorMsg = '上传附件格式错误,只允许mp4格式'
} else if (file.size > 1000 * 1000 * 1000) {
errorMsg = '视频文件大小不能超过 1GB!'
} }
} }
if (errorMsg) { if (errorMsg) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论