ZBLOG

vue3+antd-desigin-vue 上传文件

在 Vue 3 中使用 Ant Design Vue 实现文件上传的功能,可以通过 Upload 组件来完成。下面是一个简单的示例,展示如何创建一个文件上传的功能。

安装 Ant Design Vue

首先确保你已经安装了 ant-design-vue。如果还没有安装,可以使用 npm 或 yarn 来安装:

  1. npm install ant-design-vue
  2. # or
  3. yarn add ant-design-vue

示例代码

接下来,你可以在你的 Vue 组件中使用 Upload 组件。以下是一个基本的实现:

  1. <template>
  2. <a-upload
  3. :before-upload="beforeUpload"
  4. :on-change="handleChange"
  5. accept=".jpg,.jpeg,.png"
  6. :show-upload-list="false"
  7. >
  8. <a-button icon="upload">点击上传</a-button>
  9. </a-upload>
  10. </template>
  11. <script setup>
  12. import { ref } from 'vue';
  13. import { Upload, Button, message } from 'ant-design-vue';
  14. const fileList = ref([]);
  15. const beforeUpload = (file) => {
  16. const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
  17. if (!isJpgOrPng) {
  18. message.error('您只能上传 JPG/PNG 文件!');
  19. }
  20. const isLt2M = file.size / 1024 / 1024 < 2;
  21. if (!isLt2M) {
  22. message.error('文件大小必须小于 2MB!');
  23. }
  24. return isJpgOrPng && isLt2M;
  25. };
  26. const handleChange = (info) => {
  27. if (info.file.status !== 'uploading') {
  28. console.log(info.file, info.fileList);
  29. }
  30. if (info.file.status === 'done') {
  31. message.success(`${info.file.name} 文件上传成功`);
  32. // 可以在这里处理返回的数据,例如将其添加到fileList
  33. fileList.value.push(info.file);
  34. } else if (info.file.status === 'error') {
  35. message.error(`${info.file.name} 文件上传失败`);
  36. }
  37. };
  38. </script>
  39. <style scoped>
  40. /* 自定义样式 */
  41. </style>

功能说明

  1. beforeUpload: 在文件上传之前进行验证,这里主要检查文件类型和大小。
  2. handleChange: 当文件状态改变时触发,处理成功或失败的信息反馈。
  3. accept: 用于限制可以上传的文件类型,这里只允许 JPEG 和 PNG 格式。
  4. show-upload-list: 设置为 false 隐藏默认的上传列表。

注意事项

  • 确保在父组件中正确引入和配置 Ant Design Vue。
  • 根据项目需求,你可能需要配置后端接口,以便真正处理文件上传请求。

以上就是一个简单的基于 Vue3 和 Ant Design Vue 的文件上传示例。如果有任何具体问题或者其他功能需求,请告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21018

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?