使用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 相关文章推荐
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
JS高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
jQuery代码优化 事件委托篇
Nov 01 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
JS实现验证码倒计时的注册页面
Jan 02 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 Javascript
vue 使用 canvas 实现手写电子签名
Mar 06 Javascript
element中el-container容器与div布局区分详解
May 13 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 Javascript
JavaScript缓动动画函数的封装方法
Nov 25 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
Apr 19 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
用ADODB.Stream转换
2007/01/22 Javascript
改版了网上的一个js操作userdata
2007/04/27 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
python实现文本文件合并
2015/12/29 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
党支部组织生活会整改方案
2014/09/30 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
使用Python解决图表与画布的间距问题
2022/04/11 Python
Python循环之while无限迭代
2022/04/30 Python
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android