设置el-upload上传框的尺寸大小

在Vue项目开发中,当el-upload上传组件的默认尺寸不符合需求时,可以通过添加CSS样式进行调整。例如,通过设置/deep/.el-upload.el-upload-dragger的width和height属性,可以改变上传框的尺寸,同时调整图标大小和样式以达到预期效果。

        在实际vue项目开发中,有时el-upload上传框的默认长度和宽度不是自己想要的,这就需要自行修改,方法也简单,先上效果对比图:

默认的上传框尺寸

 

        若要修改尺寸,则添加如下代码即可:

<template>
    <div id="upload">
        <el-upload drag multiple>
            <i class="el-icon-upload"></i>
            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
            <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,
在使用 `el-form` 时结合 `el-upload` 组件,通常用于实现包含文件上传功能的表单。`el-upload` 是 Element UI 提供的文件上传组件,而 `el-form` 则用于表单验证和提交,因此需要将两者协同工作以确保文件上传信息可以作为表单数据的一部分进行处理。 ### 表单结构与数据绑定 首先,在 `el-form` 中定义一个 `el-form-item`,并使用 `prop` 来指定该字段在表单中的验证规则。由于 `el-upload` 并不直接提供 `v-model`,因此需要手动绑定文件上传后的数据,例如通过 `on-success` 回调函数将上传后的文件信息存储到表单数据中。 ```html <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> <el-form-item label="文件上传" prop="file"> <el-upload action="https://jsonplaceholder.typicode.com/posts/" :on-success="handleSuccess" :before-upload="beforeUpload"> <el-button type="primary">点击上传</el-button> </el-upload> <input type="hidden" v-model="ruleForm.file" /> </el-form-item> </el-form> ``` ### 文件上传与数据绑定逻辑 在上述代码中,`handleSuccess` 是文件上传成功时的回调函数,用于将上传后的文件信息绑定到 `ruleForm.file` 中,以便在表单提交时一同提交[^2]。 ```javascript methods: { handleSuccess(response, file) { this.ruleForm.file = file.name; // 假设后端返回文件名 }, beforeUpload(file) { const isValid = file.type === 'application/pdf'; // 文件类型验证 if (!isValid) { this.$message.error('只能上传PDF文件'); } return isValid; } } ``` ### 表单验证规则 在 `rules` 中为 `file` 字段设置验证规则,确保用户必须上传文件。 ```javascript rules: { file: [ { required: true, message: '请上传文件', trigger: 'change' } ] } ``` ### 非自动上传方案 如果希望手动控制文件上传,可以将 `el-upload` 的 `auto-upload` 设置为 `false`,并通过 `ref` 调用 `submit` 方法来触发上传操作。这样可以在表单提交时统一处理文件上传[^2]。 ```html <el-upload ref="upload" action="https://jsonplaceholder.typicode.com/posts/" :auto-upload="false"> <el-button slot="trigger" type="primary">选择文件</el-button> <el-button @click="submitForm">提交表单</el-button> </el-upload> ``` ```javascript methods: { submitForm() { this.$refs.upload.submit(); // 触发文件上传 // 其他表单提交逻辑 } } ``` ### 注意事项 - **文件类型与大小限制**:在 `before-upload` 钩子中可以对文件类型、大小等进行限制。 - **隐藏字段绑定**:由于 `el-upload` 本身不支持 `v-model`,因此通常通过隐藏的 `<input>` 或其他方式绑定文件信息到表单数据中。 - **表单验证触发**:上传成功后,应手动触发表单验证,确保文件字段的验证状态更新。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

【金融科技蚂蚁】

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

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

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

打赏作者

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

抵扣说明:

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

余额充值