10-2 上传之自定义上传/关闭页面中断请求
上传组件:组件效果
功能说明:
1. 上传为post请求,请求需要携带四个参数,其中有file上传的文件
2. 自定义上传时显示进度条,正在上传的文件删除要杀死当前这个请求,这里是用的file.uid进行的对号查找
3. 当有任务上传时,关闭或者刷新页面要杀死所有请求。
组件代码:
if="title" class="subTitle">
tooltip
:disabled="disabledFn(childData.data.directoryName)"
:content="childData.data.directoryName"
placement="top"
effect="light"
>
{{ getDirNameFn(childData.data.directoryName) }}
上传文件
upload
ref="fileRefs"
class="upload-box"
action="#"
:http-request="UploadFn"
:on-remove="handleRemove"
:before-remove="beforeRemove"
:before-upload="beforeUpload"
:on-success="handleSuccess"
:file-list="fileList"
>
if="false" size="small" type="primary">点击上传
附:引入的 getStringLength方法:
// 统计输入字符长度
export const getStringLength = str => {
let totalLength = 0
if (str) {
const list = str.split('')
for (let i = 0; i < list.length; i++) {
const s = list[i]
if (s.match(/[\u0000-\u00ff]/g)) {
// 半角
totalLength += 1
} else if (s.match(/[\u4e00-\u9fa5]/g)) {
// 中文
totalLength += 2
} else if (s.match(/[\uff00-\uffff]/g)) {
// 全角
totalLength += 2
}
}
}
return totalLength
}
// 统计输入字节长度(无论中英文,字母数组,符号都算一字节)
export const getByteLength = str => {
let totalLength = 0
const list = str.split('')
for (let i = 0; i < list.length; i++) {
totalLength += 1
}
return totalLength
}