依靠u-upload实现多图携带参数上传。多图上传。

博客内容讲述了在uniapp中使用u-upload组件进行多图上传时遇到的问题,即无法在真机上携带参数上传。作者提出了一个解决方案,即通过后端修改接口,先上传图片获取图片地址,然后将图片地址与其他参数一起发送到数据保存接口。文章详细展示了u-upload组件的配置及上传、删除图片的回调函数,以及表单提交逻辑。

!注意 :因为u-uplod以及uniapp本身的上传文件API uni.uploadFile 都没有办法在真机上做到携带参数多图上传。 解决办法是让后端将上传方式改为两个接口,一个接口上传图片返回图片地址。图片地址和参数一起上传到数据保存的接口。

u-upload引用

<u-upload
    ref="uUpload"
    :header="header" //设置header
    :action="actions"// 后端接受图片的地址
    name="file"	// 根据后端要求命名上传内容名字
    max-size="1048576" 	// 图片大小限制
    :limitType="['png', 'jpg', 'jpeg']" // 图片格式限制
    max-count="10" // 图片数量限制
   @on-success="imgUpSuccess"	// 上传成功回调
   @on-remove="imgRemove"	// 删除图片回调
</u-upload>

变量

data
### 使用 `el-upload` 组件上传片时附加自定义参数Vue 和 Element UI 中,为了在使用 `<el-upload>` 组件上传片时附加上下文中提到的自定义参数,可以通过配置项 `data` 来传递额外的数据。这允许开发者向服务器发送请求的同时携带必要的信息。 当设置好相应的字段后,在发起 HTTP 请求的过程中这些数据会被一同提交给指定的服务端接口。下面是一个具体的例子来说明如何操作: ```html <template> <div class="upload-demo"> <!-- 定义 el-upload 组件 --> <el-upload action="/api/upload" :data="extraData" /* 将 extraData 对象作为表单数据的一部分 */ :on-preview="handlePreview" :on-remove="handleRemove" :before-upload="beforeUpload" multiple limit="3" list-type="picture"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传 jpg/png 文件,且不超过 500kb</div> </el-upload> </div> </template> <script> export default { data() { return { // 自定义参数对象 extraData: { param1: 'value1', param2: 'value2' } }; }, methods: { handlePreview(file) {}, handleRemove(file, fileList) {}, beforeUpload(file){ const isJPGorPNG = file.type === 'image/jpeg' || file.type === 'image/png'; const isLt500K = file.size / 1024 < 500; if (!isJPGorPNG) { this.$message.error('仅支持 JPG 或 PNG 片!'); } if (!isLt500K) { this.$message.error('片大小需小于 500KB!'); } return isJPGorPNG && isLt500K; } } }; </script> ``` 上述代码展示了怎样利用 `:data` 属性绑定一个 JavaScript 对象至上传组件上,从而实现在文件传输过程中捎带其他业务逻辑所需的信息[^1]。 #### 关于 `ref` 的应用 值得注意的是,如果希望进一步增强灵活性或控制力,还可以借助 `ref` 特性获取到该组件实例,并调用其内部的方法来进行更复杂的交互处理。例如,通过 `this.$refs.upload.submit()` 可以手动触发整个队列里的文件上传过程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值