我们平时都有上传文件的经历,但是上传中难免会出现重复上传,对图片可能影响不大,但是对于上传文件特别时APK,比如:微信.apk,这个apk名称都是微信,但是有V1.0和V20版本,你重复上传会被覆盖,对于后端也不好管理,怎么办?后端要求你上传到文件服务器时,把APK名称改成唯一的名字。
我这里是要上传APK到文件服务器,这里后端要求我上传的时候修改APK名称(目的是为了确保唯一的,这个不重要)。
终于找到一个参考了:https://blog.csdn.net/weixin_40136114/article/details/102735168
直接使用 :data={参数} ,参数为键值对的形式{key1:value1,key2:value2},传递参数。
所以我就添加绑定了:data=“apkfilename”.因为是后端给我生成唯一的值,所以我需要赋值,不然可以直接:data={APKName:“asdsadhjsdh2123123sasd.apk”}自定义。
<el-upload
class="upload-demo"
ref="upload"
:auto-upload="false"
accept=".apk"
:limit="1"
:on-exceed="handleExceed"
:before-remove="beforeRemove"
:on-success="handleAvatarSuccess"
:on-error="handleAvatarError"
:data="apkfilename"
:action="uploadURL"
:on-change="appSelect1"
>
<el-button slot="trigger" size="small" type="primary" >选取文件</el-button>
<div slot="tip" class="el-upload__tip">注意:选择APK后系统自动命名,请忽略!</div>
<!-- <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> -->
</el-upload>
然后是apkfilename的方法来接收后端提供的名称。
var appfilename = tt.strName+".apk";//tt.strName这个是后端给的名字,所以这里是parser.file.name20210624094432988.apk
this.apkfilename={appName:appfilename};//appName这个是后端做的接口,你把appfilename 传过去就行了,它会自动对文件重命名
这个就是在上传文件时传参的作用,上传后重命名,防止用户重复提交会覆盖,或者标识唯一的文件,这个看自己的用途。