栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot和jquery.form.js实现监听文件上传进度

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot和jquery.form.js实现监听文件上传进度

说明

文件上传作为程序开发最常用的功能之一,上传进度展示也是必须的。但是有时候进度并不准,进度100%了实际上后台尚未接收完毕,本篇就介绍如何利用jquery的form插件来实时反馈文件上传进度。

实现效果


注意:最后100%停了一下才出现返回结果,因为服务器端在将二进制流写入到磁盘中耗费了点时间。

关于jquery.form

1.这个框架集合form提交、验证、上传的功能。
2.这个框架必须和jquery完整版结合,否则使用min则无效。
原理:利用js进行对form进行组装成ajax的url和data,原理还是用ajax来提交,其实这完全可以自己写,但是有这个框架可能会更简单。

  • 支持的功能有:
    -ajaxForm
    -ajaxSubmit
  • formToArray
  • formSerialize
  • fieldSerialize
  • fieldValue
  • clearForm
  • clearFields
  • resetForm

详细用法请参考:https://jquery.malsup.com/form/

开发步骤 1.文件上传类
@Controller
@RequestMapping("/api/file")
public class FileUploadController {
    @RequestMapping(value="/upload", method=RequestMethod.POST )
    @ResponseBody
    public Map uploadFile(@RequestParam("fileItem") MultipartFile fileItem )
    {

        String filename = fileItem.getOriginalFilename();
        try {
            byte[] fileBytes = fileItem.getBytes();
            Files.write(Paths.get("D:\tmp\" + fileItem.getOriginalFilename()), fileBytes);
        } catch (IOException e) {
            e.printStackTrace();

        }
        Map result = new HashMap<>();
        result.put("code",200);
        result.put("message",filename+"上传成功!");

        return result;
    }
}
2.前端页面



    
    文件上传
    

    
    
    
    

    


    

jquery.form方式展示文件上传进度

0%

3.修改application.yml

启动配置文件中添加以下内容,因为默认文件上传大小被限制在10m,此处放大到1G。

spring:
  servlet:
    multipart:
      max-file-size: 1000MB
      max-request-size: 1000MB
4.启动项目

访问:http://localhost:9000/ajaxupload.html
安图所示测试:

项目源码

觉得有帮助的朋友给老徐来个收藏+点赞+关注,:)

https://gitee.com/indexman/spring_boot_in_action/blob/master/websocket

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号