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

 更新时间:2016年05月12日 15:38:01   作者:ThomasCui  
这篇文章主要介绍了使用jQuery.form.js/springmvc框架实现文件上传功能,非常具有参考借鉴价值,感兴趣的朋友一起学习吧

使用的技术有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://www.jb51.net/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"}}

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

此时页面会报错415。

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

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

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

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

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

相关文章

  • 关于JavaScript和jQuery的类型判断详解

    关于JavaScript和jQuery的类型判断详解

    下面小编就为大家带来一篇浅谈JavaScript和jQuery的类型判断。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 当jQuery1.7遇上focus方法的问题

    当jQuery1.7遇上focus方法的问题

    如果一定要用最高版本的jQuery,最省事的办法莫过于在写xxx.focus()时,加一个try/catch,变成try{xxx.focus();}catch(e){}
    2014-01-01
  • jQuery深拷贝Json对象简单示例

    jQuery深拷贝Json对象简单示例

    这篇文章主要介绍了jQuery深拷贝Json对象的简单实现方法,以简单示例形式分析了jQuery深拷贝的操作技巧,需要的朋友可以参考下
    2016-07-07
  • 两种方法基于jQuery实现IE浏览器兼容placeholder效果

    两种方法基于jQuery实现IE浏览器兼容placeholder效果

    这篇文章主要介绍了两种方法基于jQuery实现IE浏览器兼容placeholder效果,需要的朋友可以参考下
    2014-10-10
  • jQuery实现的点击图片居中放大缩小功能示例

    jQuery实现的点击图片居中放大缩小功能示例

    这篇文章主要介绍了jQuery实现的点击图片居中放大缩小功能,涉及jQuery基于事件响应针对页面元素动态操作相关实现技巧,需要的朋友可以参考下
    2019-01-01
  • jQuery实现发送验证码控制按钮禁用功能

    jQuery实现发送验证码控制按钮禁用功能

    最近接到新需求,需要实现一个点击发送验证码之后,按钮禁用,在5秒之后取消禁用,看似需求很简单,实现起来还真的好好动动脑筋,下面小编把jquery控制按钮禁用核心代码分享给大家,需要的朋友参考下吧
    2021-07-07
  • jQuery插件StickUp实现网页导航置顶

    jQuery插件StickUp实现网页导航置顶

    本文给大家介绍的是一款jQuery插件--StickUp,他的主要用途是实现网页元素固定,如导航固定让其总是保持在视图中可见,效果非常不错,这里推荐给小伙伴们。
    2015-04-04
  • 七个不允许错过的jQuery小技巧

    七个不允许错过的jQuery小技巧

    这篇文章主要介绍了七个不允许错过的jQuery小技巧,帮助WEB开发人员开发出有创意和漂亮的WEB页面,需要的朋友可以参考下
    2015-12-12
  • 以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题

    以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题

    Promises是一种令代码异步行为更加优雅的抽象,它很有可能是JavaScript的下一个编程范式,一个Promise即表示任务结果,无论该任务是否完成。本文以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题,需要的朋友参考下
    2015-11-11
  • jQuery实现动态添加和删除input框实例代码

    jQuery实现动态添加和删除input框实例代码

    这篇文章主要介绍了jQuery实现动态添加和删除input框,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论