前端 JavaScript 获取上传文件进度实现进度条展示

该文展示了如何在React应用中创建一个进度条组件,通过CSS定义样式,JavaScript处理文件上传进度,并利用useState管理状态来更新进度条的宽度,实现动态显示上传进度。
摘要由CSDN通过智能技术生成

html 部分

// 本段是 React 写法
<div className='progress tea-mt-3n'>
   <div style={{ width: progressWidth + '%' }} className='child'></div>
</div>

css 部分

.progress {
    height: 20px;
    border: 1px solid rgba(176, 176, 176, 0.46);
    .child {
      height: 100%;
      background-color: #01c032;
    }
  }

js 函数体部分

const [uploadingFileList, setUploadingFileList] = useState([]);
const [isUploading, setIsUploading] = useState(null);
const [progressWidth, setProgressWidth] = useState(0);

function onUploadStart(file, { xhr }) {
    temUploadFileList = [
      ...temUploadFileList,
      {
        id: file.id,
        name: file.name,
        size: file.size,
        status: 'pending',
        xhr: xhr,
      },
    ];
    xhr.upload.onprogress = function(e){
      if(e.lengthComputable){
        // 当调用函数后这里会设置进度条的宽度值, 从而实现进度条效果
        setProgressWidth((e.loaded/e.total)*100);
        console.log('当前上传进度'+Math.round((e.loaded/e.total)*100)+'%')
      }
    };
    setUploadingFileList(temUploadFileList);
    setIsUploading(true);
  }

喜欢请点赞关注!!!  有问题请留言, 私信。感谢支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Spring Boot中使用Ant Design来实现文件进度条,你可以按照以下步骤进行操作: 1. 首先,确保你已经在Spring Boot项目中引入了Ant Design所需的前端资源。可以通过以下方式引入: - 在HTML文件中引入Ant Design的样式文件和脚本文件: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/antd/dist/antd.css"> <script src="https://cdn.jsdelivr.net/npm/antd/dist/antd.js"></script> ``` - 或者,你也可以通过npm安装Ant Design并将其作为项目的依赖使用。 2. 在Spring Boot中编写一个用于处理文件的Controller。可以使用`MultipartFile`来接收上文件,并使用`@RestController`注解将其声明为一个RESTful接口。 ```java import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @RestController public class FileUploadController { @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException { // 处理文件的逻辑 // 可以在这里获取文件的输入流并保存到指定位置 // 返回上成功的消息或其他信息 return "File uploaded successfully"; } } ``` 3. 在前端页面中使用Ant Design的组件来实现文件进度条。你可以使用`Upload`组件来实现文件功能,同时使用`Progress`组件来展示进度条。 ```html <template> <div> <Upload action="/upload" :before-upload="beforeUpload" :on-progress="onProgress" :on-success="onSuccess" :on-error="onError" > <a-button type="primary" icon="upload">选择文件</a-button> </Upload> <Progress :percent="uploadPercentage" v-if="showProgressBar" /> </div> </template> ``` 4. 在Vue组件的`data`中定义相关变量,并在方法中定义上前和上过程中的回调函数。 ```javascript export default { data() { return { showProgressBar: false, uploadPercentage: 0 } }, methods: { beforeUpload(file) { // 这里可以进行一些文件格式或大小的校验 }, onProgress(event, file) { // 计算上进度并更新进度条 this.uploadPercentage = Math.round((event.loaded / event.total) * 100); this.showProgressBar = true; }, onSuccess(response, file) { // 上成功后的处理 // 根据后端返回的数据进行相应的操作 }, onError(error, response, file) { // 上失败后的处理 } } } ``` 5. 最后,你需要引入Vue和Ant Design的相关组件和样式文件。 ```javascript import Vue from 'vue'; import { Upload, Button, Progress } from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; Vue.use(Upload); Vue.use(Button); Vue.use(Progress); ``` 这样,你就可以在Spring Boot中使用Ant Design的组件来实现文件进度条了。当用户选择文件并点击上按钮时,文件将被发送到Spring Boot后端,并通过回调函数更新上进度条的状态。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CSDN_33901573

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

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

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

打赏作者

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

抵扣说明:

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

余额充值