java jquery上传文件_SpringMVC + jquery.uploadify实现上传文件功能

前言

以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo。

刚开始用form表单的方式提交,在Controller Action中用@RequestParam MultipartFile file就能拿到上传文件信息。后我直接使用uploadify的方式上传,接口没有做任何调整,上传的过程中报http400, 客户端的请求不符合接口的要求,表单post提交时报文参数是以Form Data方式,而换成uploadify时参数格式则是request payload的方式,所以把接口改写成MultipartServletRequest的方式

开发环境

SpringMVC4、Uploadify、

上传文件的话还需要下载 commons-fileupload ,同时还会下载common-io、common-logging

项目结构

5cd58764cce24a15a40883b9e9cea8ba.png

普通表单上传

@RequestMapping("upload")

public @ResponseBody String upload(@RequestParam MultipartFile file) throws IOException {

String path =request.getSession().getServletContext().getRealPath("upload");

File file=new File(path,file.getOriginalFilename());

file.transferTo(file); //保存文件

return "/success";

}

uploadify上传文件

Index

#fileQueue {position: absolute;bottom: 0;right: 0;}

spring mvc 上传文件

$(function () {

$("#uploadify").uploadify({

'method':'post',

//指定swf文件

'swf': '/2sc/uploadify/uploadify.swf',

//后台处理的页面

'uploader': '/User/upload',

//按钮显示的文字

'buttonText': '上传图片',

//显示的高度和宽度,默认 height 30;width 120

//'height': 15,

//'width': 80,

//上传文件的类型 默认为所有文件 'All Files' ; '*.*'

//在浏览窗口底部的文件类型下拉菜单中显示的文本

'fileTypeDesc': 'Image Files',

//允许上传的文件后缀

'fileTypeExts': '*.gif; *.jpg; *.png',

//发送给后台的其他参数通过formData指定

'formData': { 'someKey': 'someValue'},

//上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false 自动生成, 不带#

'queueID': 'fileQueue',

//选择文件后自动上传

'auto': true,

//设置为true将允许多文件上传

'multi': true

});

});

接口

@RequestMapping(value = "/upload",method = RequestMethod.POST)

public @ResponseBody String upload(HttpServletRequest request, HttpServletResponse response){

String path =request.getSession().getServletContext().getRealPath("upload");

MultipartHttpServletRequest multipartHttpServletRequest=(MultipartHttpServletRequest)request;

Map map = multipartHttpServletRequest.getFileMap();

System.out.println("path:"+path);

File file=new File(path);

if(!file.exists()){

file.mkdirs();

}

try{

for(Map.Entry entity:map.entrySet()){

MultipartFile multipartFile=entity.getValue();

File ff = new File(path,multipartFile.getOriginalFilename());

multipartFile.transferTo(ff);

}

return "success";

}catch (Exception e){

e.printStackTrace();

return "error";

}

}

20c9c961973cb872ffd5842558fc675e.png

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值