【Vue3 + Element-Plus】 el-upload 组件批量上传图片问题记录

这篇博客记录了在Vue3项目中使用Element-Plus的el-upload组件进行图片批量上传时遇到的问题及解决过程。作者在初始尝试中遇到上传图片时触发接口错误404,第二次尝试改为手动上传导致图片重复,第三次尝试解决了图片删除后数组未更新的问题。通过调整代码,最终实现了正确的图片上传和管理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上传图片组件踩坑记录

1. 第一次尝试

最初的写法如下,在本地跑的时候每上传一张图片调一次接口,虽然图片回显正常了,但是每次都会自动多调一个如下图所示的apply-login 报错404,部署到测试环境后,就是每次都报错,图片也不会正常回显。

1.1 初始代码

<el-upload
    ref="uploadImgRef"
    action="#
<< 在 Vue3Element Plus 中使用 `el-upload` 组件上传文件并展示进度条是一个常见的需求。以下是如何实现的具体步骤: ### 实现步骤 #### 1. 安装依赖 确保已安装 Vue3Element Plus,如果未安装可以通过以下命令完成: ```bash npm install element-plus ``` #### 2. 引入组件 在项目中引入 `ElUpload` 或者完整地按需加载 Element Plus。 ```javascript // main.js import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; import ElementPlus from &#39;element-plus&#39;; import &#39;element-plus/dist/index.css&#39;; const app = createApp(App); app.use(ElementPlus);app.mount(&#39;#app&#39;); ``` #### 3. 使用 el-upload 展示进度条 `el-upload` 提供了 `on-progress` 钩子方法用于监听上传过程中的进度变化,结合 `percentage` 参数可以在 UI 上显示上传百分比。 ```vue <template> <div> <!-- 文件上传 --> <el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/" :on-progress="handleProgress" :before-upload="beforeAvatarUpload"> <el-button type="primary">点击上传</el-button> <template #tip> <div class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </template> </el-upload> <!-- 进度条 --> <el-progress v-if="progressPercent > 0" :percentage="progressPercent"></el-progress> </div> </template> <script> export default { data() { return { progressPercent: 0, // 当前上传进度 }; }, methods: { handleProgress(event) { this.progressPercent = parseInt(event.percent); // 更新进度值 }, beforeAvatarUpload(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> <style scoped> .upload-demo { margin-bottom: 20px; } </style> ``` #### 关键点解释 - **action**: 设置为服务器端接收上传请求的地址。 - **on-progress**: 在每次上传进度发生变化时触发,参数包含当前的百分比信息。 - **before-upload**: 可对上传之前的文件进行校验或预处理操作(如检查类型和大小)。 --- ### 总结 以上代码展示了如何通过 `el-upload` 结合 `el-progress` 来监控文件上传状态,并实时更新进度条。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Komorebi゛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值