Spring MVC 中使用H5接口FormData上传文件实例
来源:互联网 发布:防盗门锁芯规格 知乎 编辑:程序博客网 时间:2024/06/16 09:38
1.什么是FormData?
先来看下Mozilla上的介绍:XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单".比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件.
原文介绍:戳这里
2.实例
说明:下面的实例用来展示简单的修改用户信息的过程,并包含着上传头像的功能
2.1 HTML代码
<form id="userForm"><p>姓名:<input type="text" name="userName" /></p><p>头像:<input type="file" name="file" /><button type="button" value="保存" onclick="save()"></button></form>
2.2 JavaScript代码
注意:下面的js代码是采用jquery(较低版本可能不兼容)的ajax进行实现,想了解更多原生的js使用方式使劲戳这里
<script type="text/javascript">/* 保存 */function save() {//[0]表示获取原生对象var formData = new FormData($("#userForm")[0]);//还可以手动添加自定义字段,如下:formData.append("userPwd", "123456");$.ajax({url : 'url...',type : 'POST',data : formData,async : false,cache : false,contentType : false,// 告诉jQuery不要去设置Content-Type请求头processData : false,// 告诉jQuery不要去处理发送的数据success : function(data) {alert(data);//...},error : function(data) {alert(data);//...}});}</script>
2.3 后台Java代码
注意:下面示例模拟更新用户信息过程,上传文件只是简单保存,并无校验文件大小、后缀名啦神马的,相信聪明的你们肯定能举一反三,666!
/** * 模拟更新用户信息 * * @param request * @param file * 头像文件 * @param user * 用户对象,自动映射字段 * @return 反馈信息 */@RequestMapping(value = "update", method = RequestMethod.POST)@ResponseBodypublic String update(HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file,UserInfo user) {String msg = "success";/** * 1.简单上传文件并保存到headimg目录下 */String headImg = null;// 用户保存用户头像文件名if (file != null && !file.isEmpty()) {headImg = file.getOriginalFilename();// 构建上传目录及文件对象,不存在则自动创建String path = request.getSession().getServletContext().getRealPath("headimg");File imgFile = new File(path, headImg);// 保存文件try {file.transferTo(imgFile);} catch (Exception e) {e.printStackTrace();}}/** * 2.修改用户信息(这里只是模拟啊...) */try {UserInfo old = new UserInfo();// 这个字段是从表单里面传过来的old.setUserName(user.getUserName());// 这个字段是从js里面传过来的old.setUserPwd(user.getUserPwd());if (headImg != null) {old.setHeadImg(headImg);}// 保存或更新....service.update(old);} catch (Exception e) {msg = e.getMessage();e.printStackTrace();}return msg;}
0 0
- Spring MVC 中使用H5接口FormData上传文件实例
- 使用H5的formData对象实现文件的异步上传
- EXTJS使用H5 formdata实现多文件上传
- Spring MVC中上传文件实例
- Spring MVC中上传文件实例
- 使用FormData上传文件
- 使用FormData上传文件
- 使用formData上传文件
- H5 formData实现批量ajax上传文件
- FormData 实现文件上传实例
- spring mvc 文件上传实例
- jersey1.x集合html5使用FormData上传多文件实例
- 使用FormData单独上传文件
- H5 通过Ajax方式上传文件,使用FormData进行Ajax请求
- JS中使用FormData上传文件、图片的方法
- 使用formdata+ajax文件上传中遇到的问题
- Spring mvc 文件上传接口报错
- Spring Mvc 上传文件Demo 实例
- 第一个C++程序。输入输出
- android线程池介绍
- 使用procedure analyse()分析mysql给出的关于表结构的优化建议
- Missing Number
- iOS 加密总结(Base64 、DES、MD5)持续更新
- Spring MVC 中使用H5接口FormData上传文件实例
- 启动优化 让app秒开
- logback配置详解
- FMDB详解
- 小伙的java之旅——泛型
- Linux TCP/IP 网络工具对比:net-tools 和 iproute2
- 在java web项目中将http 转变成https tomcat8.5
- 基于一阶 HMM 标注序列算法的分词算法解析
- html