vant-ui uploader上传文件,修改文件名

本文详细介绍了如何使用van-uploader组件在文件上传前修改文件名,通过构造新的File对象并添加时间戳确保文件名的唯一性。此方法适用于单个文件上传场景。

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

  1. 为什么修改文件名?

    有些时候为了保证文件名唯一性,我们需要二次处理已选择的文件,文件名添加时间戳

  2. 怎么修改?

    van-uploader文件上传组件为我们提供了before-readafter-readbefore-delete属性,分别用来指定文件读取前、读取文件完成后、删除文件前的回调函数。通常文件上传方法是写在文件读取完成回调函数中的,首先我们需要确定我们在回调函数中拿到的文件是什么样的,浏览器中打印回调函数中的file参数

    在这里插入图片描述

    仔细观察我们会发现,这个是在file文件的外层又封装了一层,我们拿到的文件本身是这样的

    在这里插入图片描述

    仔细阅读van-ui的源码,我们会发现

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    组件里面返回给我们的是一个File对象,其中file属性才是我们的文件流,所有我们要修改和上传的是File对象中的file属性

    file类型是只读的,强行修改文件名会发生错误,我们可以通过构造一个新的file对象来达到修改文件名的目的

    //这里演示的是单个文件上传的情况
    afterRead(file) {
        const tempFile = file.file
        const type = tempFile.type
        const size = tempFile.size
        const newName = new Date().getTime() + tempFile.name
        let uploadFile = new File([tempFile],newName,{type,size})
        let formData = new FormData() 
        formData.append('file', uploadFile)
        //调用文件上传接口上传文件
    }
    
Vue Vant-UI是Vue.js的一个移动端UI组件库,是一个轻量级的、高效的组件库,非常适合用于移动端前端开发。其中,Van-UploaderVant-UI上传文件组件,允许用户将文件上传到服务器或第三方存储库。 在实现头像图片上传时,我们可以采用如下步骤: 1. 首先需要安装Vant-UI组件库。可以通过npm命令进行安装,输入如下代码:npm install vant --save 2. 在Vue项目中引入Vant-UI组件库。在main.js文件中写入如下代码:import Vant from 'vant' import 'vant/lib/vant-css/index.css' Vue.use(Vant) 3. 在需要使用上传头像的组件中引入Van-Uploader组件,并编写如下代码: <template> <van-uploader :show-upload="false" :before-read="beforeRead" :after-read="afterRead" > <van-icon name="photograph" /> </van-uploader> </template> <script> export default { data() { return { file: '' } }, methods: { beforeRead(file) { if (file.type !== 'image/jpeg' && file.type !== 'image/png') { this.$toast('请上传 JPG/PNG 格式的图片'); return false; } if (file.size > 500 * 1024) { this.$toast('图片大小不能超过 500KB'); return false; } }, afterRead(file) { this.file = URL.createObjectURL(file.file); } } } </script> 4. 上面的代码中,我们主要使用了Van-Uploader组件的before-read和after-read两个事件回调函数。before-read为上传文件之前的校验函数,例如判断文件类型和文件大小是否符合要求,这里我们限制了文件类型为JPG/PNG并且大小不能超过500KB。after-read则表示读取文件后的回调函数,我们将上传文件读取为本地链接并保存到file属性中,以便进行后续处理。 5. 最后,将file属性传递给后端进行处理,例如将该链接保存到服务器或者上传到第三方存储库中。 总之,使用Van-Uploader组件可以轻松实现头像图片上传功能,同时也可以根据需求进行个性化的定制和扩展,是一个非常实用且易于使用的组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值