使用jQuery.form.js/springmvc框架实现文件上传功能


Posted in Javascript onMay 12, 2016

使用的技术有jquery.form.js框架, 以及springmvc框架。主要实现异步文件上传的同时封装对象,以及一些注意事项。

功能本身是很简单的,但是涉及到一些传递参数类型的问题。例如:jquery的ajax方法与jquery.form.js中的ajaxSubmit方法的参数,具体细节将在下一篇博客中分享。

重点: html表格三要素: action="fileUpload/fileUpload" method="post" enctype="multipart/form-data";

1. 最简单的表单直接提交

html代码:

<body>
<form action="fileUpload/fileUpload" method="post" enctype="multipart/form-data">
<input type="text" name="password">
<input type="file" name="file">
<input type="text" name="username">
<input type="submit" value="submit">
</form>
<button id="button">提交</button>
</body>

java代码(具体的springmvc配置,包括文件上传的配置参考https://3water.com/article/84078.htm)

@Controller
@RequestMapping("/fileUpload")
public class FileUpload {
@RequestMapping("/fileUpload")
@ResponseBody
public String FileUpload1(@RequestParam("file")MultipartFile file/*, @RequestParam("username")String username*/){
System.out.println("------------------------------- "+ file.getSize());
if(!file.isEmpty()){
System.out.println("Process file: "+file.getOriginalFilename() );
try {
FileUtils.copyInputStreamToFile(file.getInputStream(), new File("c:\\temp\\imooc\\", System.currentTimeMillis()+ file.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
}
return "NewFile";
}
}

2. 使用jquery.form.js的ajaxSubmit方法

html代码以及java代码保持不变,给id=button的按钮添加事件

$("#button").click(function(){
var hideForm = $('form'); 
var options = { 
dataType : "json", 
/*data: {'file': $("input[type=file]").val(), "username": '123', password: "123"},*/
beforeSubmit : function() { 
alert("正在上传"); 
}, 
success : function(result) { 
alert('成功上传!'); 
}, 
error : function(result) { 
} 
}; 
hideForm.ajaxSubmit(options); 
});

3. 在后台使用一个User对象接收username和password。

<form action="fileUpload/fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="submit">
</form>

有可能你会按照下面的步骤做: 封装表单数据作为一个json对象, 给上面的js代码添加data

data:{'file': $("input[type=file]").val(), 'user':{"username": '123', password: "123"}}

在此处其实是画蛇添足,这种情况下发送的请求的详细情况如图:

使用jQuery.form.js/springmvc框架实现文件上传功能

此时页面会报错415。

--------------------------------------------------------------

最合理的代码应该是:html代码与1相同, js代码与2相同, java代码

public String FileUpload1(@RequestParam("file")MultipartFile file, User user){

而且User、前面不能加@RequestBody.。

以上内容是小编给大家介绍的使用jQuery.form.js/springmvc框架实现文件上传功能,希望对大家有所帮助,如果大家想了解更多精彩内容,敬请关注三水点靠木网站!

Javascript 相关文章推荐
javascript 选择文件夹对话框(web)
Jul 07 Javascript
Jquery遍历checkbox获取选中项value值的方法
Feb 13 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
详解jQuery的表单验证插件--Validation
Dec 21 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
vue将单页面改造成多页面应用的方法
Nov 25 Javascript
解决layui的input独占一行的问题
Sep 10 Javascript
JS桶排序的简单理解与实现方法示例
Nov 25 Javascript
vue-cli点击实现全屏功能
Mar 07 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 #Javascript
深入浅析JavaScript中with语句的理解
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 #Javascript
You might like
杏林同学录(七)
2006/10/09 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
一个简单的js树形菜单
2011/12/09 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
畜牧兽医本科生的自我评价
2014/03/03 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
教师自查自纠材料
2014/10/14 职场文书
奖学金感谢信
2015/01/21 职场文书
接待员岗位职责范本
2015/04/15 职场文书
2015年司法所工作总结
2015/04/27 职场文书
入党后的感想
2015/08/10 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android