问题:在上传文件前,强制修改 raw.File中的name,会报错。
原因:因为file中的name是只读的,所以不能修改,
方法:可以使用new File创建新文件,然后整个替换掉raw文件对象。
1、css 中的上传 其中 auto-upload 要 设置为 false
<el-upload
ref="uploadVideo"
class="upload-demo"
action=" "
:accept="acceptType"
:auto-upload="false"
:file-list="videoOrFileList"
:before-upload="beforeUpload"
:on-error="onError"
:on-change="onChange"
:on-remove="onRemove"
:on-success="onSuccess"
>
<el-button
size="small"
type="primary"
icon="el-icon-upload"
>选择视频
</el-button>
<div
slot="tip"
class="el-upload__tip"
>只支持{{ acceptType.toUpperCase() }}格式 <span style="color:red ">(注:上传成功后,需等待5-10分钟生效)</span>
</div>
</el-upload>
2、调用接口前,处理参数
const FileParams = new FormData() //new 一个 FormData
FileParams.append('module', 'labelFile')
.................... //append需要的参数,如 el-upload 中的 data 参数
FileParams.append('File', new File([file.raw], nameNew, { type: file.raw.type }))
//append 修改name后的file,其中nameNew 是需要的name