vue前端大文件上传实践

举报
tea_year 发表于 2024/12/02 18:28:17 2024/12/02
【摘要】 大文件上传(总结在最后)1. 创建html结构2. 创建两个函数,chooseFiles函数用来动态生成文件选择器,handleFilesChange用来处理选择之后的操作3. 创建startUpload函数把大文件进行切片并且请求后端把切片后的数据传递过去4. 创建后端接口把接收到的切片文件进行拼接并且删除多余的文件整体回答总结:当用户进行大文件上传的时候,因为文件体积大所以上传比较慢。有...

大文件上传

(总结在最后)

1. 创建html结构

2. 创建两个函数,chooseFiles函数用来动态生成文件选择器,handleFilesChange用来处理选择之后的操作

3. 创建startUpload函数把大文件进行切片并且请求后端把切片后的数据传递过去

4. 创建后端接口把接收到的切片文件进行拼接并且删除多余的文件


整体总结:

当用户进行大文件上传的时候,因为文件体积大所以上传比较慢。有时会因为网络原因导致上传中止,上传不成功,这样就给客户带来了极差的体验感。现在进行大文件上传的思路有很多,常见的有:分片上传、断点续传、流式上传等。我之前有做过一个大文件上传、当时我使用的是分片上传这个思路,首先我在页面当中创建两个上传需要的操作按钮。第一个按钮用来调出文件选择器,第二个按钮则用来实现分片上传。第一个按钮就是动态创建一个input并且把它的type 类型设置为'file'然后根据需要配置文件选择器的参数。这样我们就生成了一个文件选择器。将文件上传之后,我配置第二个按钮开始进行文件上传,在这里我先用数组的reduce方法获取到文件的整体大小,然后通过每片的最大单位算出一共需要分多少片。接下来我就使用了File API中的slice()方法对文件开始切片。切片之后我是用递归函数的方法把分好的文件一个个的传递给后端。后端接收到传递的分片数据之后把数据进行拼接完成保存到目标文件夹,并且删除临时分片文件。最后后端将文件上传成功和文件路径返回给我。这样就完成了一个大文件上传,使文件上传更加稳定,并且节省了宽带资源,提高了用户体验。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。