一. 首先我们需要对formdata有所了解  

  1.FormData可以把它理解成一个虚拟的表单对象,它只有一个方法append,这个可以在浏览器console一下就知道了。我们可以通过append向FormData里面添加各种需要提交的数据。

  你可以先创建一个空的 FormData 对象,然后使用 append() 方法向该对象里添加字段,如下:var oMyForm = new FormData();

  oMyForm.append("username", "Groucho");

二.jquery的 $("form").serialize()和 new FormData表单序列化

  $("form").serialize()和 new FormData($(‘#uploadForm‘)[0])都是序列化表单,实现表单的异步提交,但是二者有区别

首先,前者,只能序列化表单中的数据 ,比如文本框等input  select等的数据,但是对于文件,比如文件上传,无法实现,那么这时候,FormData就上场了,

new FormData使用需要有一个注意点,

注意点一:对于jquery的要求是,好像是 版本1.8及其以上方可支持。

另外该对象不仅仅可以序列化文件,一样可以用作表单数据的序列化,(就是说包含了serialize()的功能);

  注意点二:

      contentType : false,必须false才会自动加上正确的Content-Type

      processData : false,必须false才会避开jQuery对 formdata 的默认处理 ,XMLHttpRequest会对 formdata 进行正确的处理 

三.FormData的使用:

  1).前台

function save(){$('#user-form').bootstrapValidator('validate');var formValid = $('#user-form').data('bootstrapValidator').isValid();//if(formValid){var params = new FormData($('#user-form')[0]);ajax({ url: "@url("/sample/saveMutilFile.action")",data:params,type:"post", mask:true,/** *必须false才会自动加上正确的Content-Type */contentType:false,  /** * 必须false才会避开jQuery对 formdata 的默认处理 * XMLHttpRequest会对 formdata 进行正确的处理 */  processData:false,  success: function(result){//刷新文件上传控件if(result.data.file1){$("#f1").fileinput('refresh', {fileId:result.data.file1.fileId,fileName:result.data.file1.fileName});}if(result.data.file2){$("#f2").fileinput('refresh', {fileId:result.data.file2.fileId,fileName:result.data.file2.fileName});}if(result.data.file3){$("#f3").fileinput('refresh', {fileId:result.data.file3.fileId,fileName:result.data.file3.fileName});}$("#f4").fileinput('refresh', {fileId:result.data.fileId,fileName:result.data.fileName});}});//}}

  2).后台

    

 public ResultBean save(TbSystemInfo entity, @RequestParam("systemAttachment-file") MultipartFile systemfile) {// 附件保存long size = systemfile.getSize();// 获取文件名String fileName = systemfile.getOriginalFilename();
}

转载于:https://www.cnblogs.com/zsber/p/9549930.html

spring 注解上传文件 @RequestParam,FormData上传文件相关推荐

  1. ajax send上传出错,AJAX + FormData 上传文件失败?

    做了一个上传头像的功能,先选择头像(用按钮代替了丑陋的input),选择文件成功,用 input onchange() 句柄 做的预览图片功能也成功,确认上传的时候,想用AJAX,从 有什么方法能aj ...

  2. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  3. 创建文件、文件上传下载、发送邮件附件以及文件点击预览功能(超详细注解)

    根据模板生成文件 @Overridepublic File exportStuFileExcelNew(Studengt student, Page<StuFile> page)throw ...

  4. Spring MVC 学习总结(五)——校验与文件上传

    目录 一.Spring MVC验证器Validator 1.1.定义验证器 1.2.执行校验 1.3.在UI中添加错误标签 1.4.测试运行 二.JSR303验证器 2.1.添加hibernate-v ...

  5. Spring MVC 学习总结(五)——校验与文件上传 转自 张果 博客;已经编程校验;正确无误;...

    Spring MVC 学习总结(五)--校验与文件上传 目录 一.Spring MVC验证器Validator 1.1.定义验证器 1.2.执行校验 1.3.在UI中添加错误标签 1.4.测试运行 二 ...

  6. Spring Boot + Vue 前后端分离,两种文件上传方式总结

    在Vue.js 中,如果网络请求使用 axios ,并且使用了 ElementUI 库,那么一般来说,文件上传有两种不同的实现方案: 通过 Ajax 实现文件上传 通过 ElementUI 里边的 U ...

  7. Java发送form-data请求实现文件上传

    如何使用Java发送form-data格式的请求上传multipart文件? 封装了以下工具类: package com.leeyaonan.clinkz.common.util;import jav ...

  8. Spring Boot(5) web开发(3)拦截器、文件上传、异常处理

    Spring Boot(5) web开发(3)拦截器.文件上传.异常处理 学习视频: https://www.bilibili.com/video/BV19K4y1L7MT?p=49&spm_ ...

  9. 【j2ee spring】38、巴巴运动网的产品文件的上传

    巴巴运动网的产品文件的上传 1.项目图解 2.我们开始做我们的相应的功能模块 页面的素材我会上传的,链接是:http://download.csdn.net/detail/cutter_point/8 ...

  10. multipart/form-data与httpclient文件上传

    写在前面:本文讨论的内容都是基于java相关技术栈. 文件上传无论是在传统的基于html的web系统开发,还是目前主流的移动app开发,都是一个比较常见的功能需求.例如:web oa系统,可能会涉及到 ...

最新文章

  1. php7.1解压包安装,【Swoole】php7.1安装swoole扩展
  2. Java加密与解密的艺术~DESede实现
  3. java实现图像处理高通滤波,图像处理入门——滤波 - leo_de_macondo的个人页面 - OSCHINA - 中文开源技术交流社区...
  4. ASP.NET2.0 菜单控件menu的动态静态用法
  5. angularjsl路由_HTML5模式下的AngularJS路由404错误
  6. windows打开设备管理器
  7. LeetCode4. 寻找两个有序数组的中位数
  8. 杭电2103---Family planning
  9. Vector Math for 3D Computer Graphics (Bradley Kjell 著)
  10. 【我的Android进阶之旅】Android开发之NDK相关版本下载链接
  11. 卸载WPS后office文档图标不能正常显示和WPS网盘图标无法删除
  12. IObit Uninstaller(卸载工具) v10.0.2.20
  13. Android Jetpack架构篇:Room
  14. vs的oxc000007b错误和key valid错误
  15. 汇编 输入成绩,排序输出,平均值,及格,不及格人数,最大最小值
  16. 新唐M480系列单片机写入dataflash数据
  17. 2022便利蜂4.14算法笔试题
  18. Linux查看日志命令(4种常见方式)
  19. CSAPP:第7章 链接
  20. 类加载器(ClassLoader)

热门文章

  1. javaweb 登陆注册页面
  2. HDU 1003——Max Sum(动态规划)
  3. 【代码笔记】iOS-浮动的云
  4. 20141203图片Base64编码与解码
  5. 如何删除git远程分支
  6. 文件系统过滤驱动开发(一)—Win32底层开发小组
  7. clientWidth、offsetWidth、clientHeight、offsetHeight的测试比较
  8. 百度金融资深产品经理降峰:互金产品如何准确触达用户
  9. 一看就明白的爬虫入门讲解-基础理论篇(下篇)
  10. 捞人宝估值数亿,已捞出数位大佬,商业模式已验证!