SPRINGBOOT+VUE实现大文件分块上传

前端用VUE2,VUE3,VUE框架的话,有一些基于HTML5的组件,普通的需求用到是也可以用,比如传500MB以内的文件,还行。但是如果文件大的话就不是特别好用,比如1G的文件。就不太好用了。

另外就是断点续传,网上搜到的VUE代码几乎所有的都是基于HTML5的,他这个功能是个半成品,用户一般传的文件都不少,比如100个,1000个,关闭浏览器或者刷新页面后这1000个文件的进度信息主丢失了。

HTML5,也就是chrome有个很严重的限制,一个域名下面只允许建立5个TCP连接,这就导致了速度的上限。

网上搜到的SpringBoot的代码不多,完整的不多,能用的也不多,基本上大部分的文章只是提供了少量的代码,讲一下思路,或者实现方案。

之前一般的做法都是使用HTML5来做的,大部都是传文件的,传文件夹的不多。网上能够搜到的能用的不多。下来下的话,基本上都不能满足用户的 需求。或者用户在用的时候总是会遇到这样或那样的问题,维护的话也很麻烦,用户满意度比较低。

我们主要是做政府项目,客户也都是政府单位的,对用户体验要求比较高,要让他们感觉用的方便,对稳定性要求比较高,基本上一年365天都不希望你出问题,对安全性要求也比较高,涉密了,信创国产化,不能连外网的,都是内网。兼容性要求比较高,有用WIN7+IE8的,也要兼容。。

版本:6.5.40
代码:up6-jsp-springboot: Web大文件上传-jsp-springboot示例 - Gitee.com

nosql示例

nosql示例不需要进行任何配置,可以直接访问测试。

SQL示例

1.创建数据库

2.配置数据库连接

3.自动下载maven依赖

4.启动项目

启动成功

6.访问及测试

默认页面接口定义:

在浏览器中访问:

数据表中的数据

相关问题:

1.javax.servlet.http.HttpServlet错误

2.项目无法发布到tomcat

3.md5计算完毕后卡住

4.服务器找不到config.json文件

5.Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile

相关参考:

文件保存位置

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>如何实现SpringBoot+Vue文件文件涉及前端和后端两个方面的实现。 前端的Vue代码: 1. 定义上文件的模板: ``` <template> <div> <input type="file" @change="handleFileUpload" ref="fileUpload"> <button @click="submitFile">上文件</button> </div> </template> ``` 2. 在Vue的methods中添加上文件的方法: ``` methods: { handleFileUpload () { this.file = this.$refs.fileUpload.files[0] }, submitFile () { let formData = new FormData() formData.append('file', this.file) axios.post('/api/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { console.log(response.data) }) } } ``` 这个方法中,我们通过FormData对象来将文件对象上到服务器端。需要注意的是,在axios请求中,我们需要指定Content-Type为multipart/form-data,以便后端能够正确地解析上文件。 后端的SpringBoot代码: 1. 配置文件的Multipart配置 在application.properties文件中添加以下配置: ``` spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 这个配置指定了上文件的大小限制,例如,上限设置为10MB。 2. 添加文件的Controller ``` @RestController @RequestMapping("/api") public class FileUploadController { @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { try { // 将上文件保存到指定路径下 String filePath = "C:/uploads/" + file.getOriginalFilename(); file.transferTo(new File(filePath)); return "文件成功"; } catch (IOException e) { e.printStackTrace(); return "文件失败"; } } } ``` 这个Controller中,通过@RequestParam注解来指定上文件参数名,再通过MultipartFile来获取上文件。最后,将文件保存到指定的路径下。需要注意的是,保存路径需要在业务中合理设置。 至此,SpringBoot+Vue文件实现就完成了。 <h3>回答2:</h3><br/>Spring Boot是一个广受欢迎的Java开发框架,Vue是一款流行的前端开发框架,他们之间的结合可以为用户提供高效、易用的Web应用程序。在其中,文件是Web应用程序的必备功能之一。Spring Boot和Vue的结合可使文件实现更加轻松快捷。 首先,需要在前端部分使用Vue来创建一个简单的文件组件,该组件可以实现文件选择、文件以及进度条的显示等功能。可以使用vue-file-upload或者其他类似的第三方库来实现文件功能,同时需要在该组件中设置上API的路径和上文件名。 然后,需要在后端部分使用Spring Boot来处理上文件。Spring Boot提供了丰富的文件处理工具和API,可以轻松地实现文件。可以使用Spring Boot的MultipartResolver来解析文件请求,同时可以使用MultipartFile类来获取上文件对象。 接着,需要在Spring Boot的Controller中创建一个上接口用于处理文件请求。该接口需要使用@RequestParam注解来获取上文件对象,并使用MultipartFile类来处理文件。同时,还需要设置上文件的路径,并将上成功后的文件路径返回到前端。 最后,需要在前端页面使用Vue来处理上结果。根据上返回的结果,可以在页面上显示上成功或者上失败的提示信息。同时,还可以使用Vue实现进度条的动态更新,用以提醒用户当前的上状态。 总的来说,Spring Boot和Vue的结合可以实现快速、高效的文件功能。借助两个框架提供的强大工具和API,开发者可以轻松地实现文件功能,提高Web应用程序的可靠性和用户体验。 <h3>回答3:</h3><br/>SpringBoot是一个基于Spring框架的快速开发微服务的工具,它简化了Spring框架的配置,使开发者可以快速上手。Vue是一款流行的前端框架,它具有高效的组件化开发和数据双向绑定等优点。在实现文件功能时,可以结合使用SpringBootVue实现。 首先,需要在SpringBoot的依赖管理文件pom.xml中添加对spring-boot-starter-web和spring-boot-starter-test的引用: ``` <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 然后,在SpringBoot的配置文件application.properties中添加文件的配置: ``` spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=215MB ``` 接下来,在SpringBoot的Controller中编写文件接口: ``` @RestController @RequestMapping("/api") @CrossOrigin(origins = "*", maxAge = 3600) public class UploadController { @PostMapping("/upload") public ResponseResult upload(@RequestParam("file") MultipartFile file) { // 处理文件业务逻辑 } } ``` 在Vue的组件中,可以使用vue-axios实现文件: ``` <template> <div> <input type="file" @change="uploadFile" /> </div> </template> <script> import axios from 'axios'; export default { data() { return { file: null } }, methods: { uploadFile() { let formData = new FormData(); formData.append('file', this.file); axios.post('http://localhost:8080/api/upload', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(res => { console.log(res.data); }) .catch(error => { console.log(error); }) } } } </script> ``` 其中,formData为提交的表单数据,append方法将文件对象添加到表单中。axios.post方法发送POST请求,在请求头中设置Content-Type为multipart/form-data。 总体来说,使用SpringBootVue实现文件功能比较简单。通过配置SpringBoot文件参数和编写文件接口,配合Vue文件组件,即可实现文件的上功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值