SpringMVC + jquery.uploadify实现上传文件功能
发布时间 - 2026-01-11 01:44:55 点击率:次前言

以前用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
项目结构
普通表单上传
<form action="/User/index" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="upload"/> </form>
@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上传文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Index</title>
<link href="/2sc/uploadify/uploadify.css" rel="external nofollow" rel="stylesheet" type="text/css" />
<script src="/2sc/js/jquery-1.4.2.js" type="text/javascript"></script>
<script src="/2sc/uploadify/jquery.uploadify.js" type="text/javascript"></script>
<style type="text/css">
#fileQueue {position: absolute;bottom: 0;right: 0;}
</style>
</head>
<body>
spring mvc 上传文件
<div id="fileQueue">
</div>
<input type="file" name="uploadify" id="uploadify" />
<script type="text/javascript">
$(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
});
});
</script>
</body>
</html>
接口
@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<String,MultipartFile> map = multipartHttpServletRequest.getFileMap();
System.out.println("path:"+path);
File file=new File(path);
if(!file.exists()){
file.mkdirs();
}
try{
for(Map.Entry<String,MultipartFile> 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";
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# spring
# mvc
# uploadify
# springmvc
# 上传文件
# jquery
# SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分
# SpringMVC+bootstrap table实例详解
# springMvc注解之@ResponseBody和@RequestBody详解
# Spring+SpringMVC+MyBatis深入学习及搭建(一)之MyBatis的基础知识
# SpringMVC中MultipartFile上传获取图片的宽度和高度详解
# SpringMVC自定义属性编辑器详解及实例
# 上传
# 表单
# 默认为
# 就能
# 则是
# 还会
# 做个
# 还需要
# 刚开始
# 不符合
# 这篇文章
# 就用
# 谢谢大家
# 不带
# 设置为
# 上传图片
# 你想要
# 自动生成
# 文件上传
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
JavaScript Ajax实现异步通信
海南网站制作公司有哪些,海口网是哪家的?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何用好域名打造高点击率的自主建站?
javascript中对象的定义、使用以及对象和原型链操作小结
Python函数文档自动校验_规范解析【教程】
JS去除重复并统计数量的实现方法
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
免费视频制作网站,更新又快又好的免费电影网站?
java中使用zxing批量生成二维码立牌
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
昵图网官网入口 昵图网素材平台官方入口
python中快速进行多个字符替换的方法小结
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何正确选择百度移动适配建站域名?
JavaScript如何实现路由_前端路由原理是什么
Laravel怎么判断请求类型_Laravel Request isMethod用法
Android使用GridView实现日历的简单功能
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
奇安信“盘古石”团队突破 iOS 26.1 提权
Bootstrap整体框架之JavaScript插件架构
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
详解CentOS6.5 安装 MySQL5.1.71的方法
如何用花生壳三步快速搭建专属网站?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
如何在建站之星网店版论坛获取技术支持?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
如何在自有机房高效搭建专业网站?
如何快速重置建站主机并恢复默认配置?
如何快速生成可下载的建站源码工具?
米侠浏览器网页背景异常怎么办 米侠显示修复
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何在腾讯云服务器快速搭建个人网站?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
北京专业网站制作设计师招聘,北京白云观官方网站?

