springmvc利用jquery.form插件异步上传文件示例
发布时间 - 2026-01-10 22:47:44 点击率:次需要的下载文件:

jQuery.form.js
jquery.js
commons-fileupload.jar
commons-io.jar
示例图片
pom.xml
<!-- 文件上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
web.xml 解决上传后中文文件名乱码问题
<!-- 解决提交时中文乱码问题 start -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 解决提交时中文乱码问题 end -->
servlet-context.xml中添加对上传的支持
<!-- 支持文件上传 --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> </beans:bean>
jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path;
%>
<html lang="us">
<head>
<meta charset="utf-8">
<title>springmvc上传文件</title>
<link type="text/css" href="<%=basePath%>/resources/css/jquery-ui/jquery-ui.css" rel="stylesheet" />
<link href="<%=basePath%>/resources/themes/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h2>springmvc上传文件</h2>
<br/>
<br/>
<div class="alert alert-success" id="formSucc"></div>
<br/>
<form role="form" id="uploadForm" name="uploadForm" enctype="multipart/form-data">
<div class="form-group">
<label>项目名称</label>
</div>
<div class="form-group">
<label>
<input class="form-control" maxlength="30" id="projectName" name="projectName">
</label>
</div>
<div class="form-group">
<label>File input</label>
<input type="file" name="file">
</div>
<button class="btn" type="button" id="doSave">提交</button>
</form>
<div></div>
</body>
</html>
<script type="text/javascript" src="<%=basePath%>/resources/js/jquery/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="<%=basePath%>/resources/js/jquery-ui/jquery-ui.js"></script>
<script type="text/javascript" src="<%=basePath%>/resources/js/jqueryForm/jquery.form.js"></script>
<script>
$(function(){
$("#formSucc").hide();
$("#doSave").click(function(){
var requestUrl = "<%=basePath%>/widget/saveFile.json";
var projectName = $("#projectName").val();
$("#uploadForm").ajaxSubmit({
type: 'post',
url: requestUrl,
//data: {projectName: projectName}, //应该把这个去掉,要不然,值会有重复,因为form提交时已经做了一次提交了。
//如果projectName的值为"tt",如果这个地方不去掉,那么提交接收的值变成"tt,tt"了。
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(data) {
if(data.success){
$(".infoTips").remove();
$("#formSucc").show();
$("#formSucc").append("<label class='infoTips'>"+data.message+"</label>");
}
}
});
});
});
</script>
Java的controller文件
package com.paincupid.springmvc.widget.controller;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.paincupid.springmvc.finance.domain.Finance;
import com.paincupid.springmvc.test.domain.Person;
import com.paincupid.springmvc.util.BaseJsonRst;
import com.paincupid.springmvc.util.CreatMockData;
/**
*
* @author arthur.paincupid.lee
* @since 2016.01.24
*
*/
@Controller
@RequestMapping("/widget")
public class widgetController {
private static final Logger log = LoggerFactory.getLogger(widgetController.class);
/**
* 上传文件
* 在前台的访问路径为: http://localhost:8080/springmvc/widget/uploadFile/view
* @return
*/
@RequestMapping("/uploadFile/view")
public String uploadFile() {
return "widget/uploadFile";
}
@ResponseBody
@RequestMapping(value="/saveFile", method=RequestMethod.POST)
public BaseJsonRst saveFile(@RequestParam MultipartFile file,
@RequestParam String projectName) {
BaseJsonRst view = new BaseJsonRst();
String orgiginalFileName = "";
try {
String fileName = file.getName();
InputStream inputStream = file.getInputStream();
String content = file.getContentType();
orgiginalFileName = file.getOriginalFilename();
log.info("fileName: "+fileName+", inputStream: "+ inputStream
+"\r\n content: "+content+", orgiginalFileName: ="+ orgiginalFileName
+"\r\n projectName: "+ projectName);
} catch (IOException e) {
e.printStackTrace();
}
view.setSuccess(true);
view.setMessage("上传: "+orgiginalFileName+" 文件成功!");
return view;
}
}
下载源码地址:http://xiazai./201701/yuanma/springmvc_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# springmvc
# 异步上传
# springmvc异步上传文件
# jqueryform
# SpringMVC异步处理操作(Callable和DeferredResult)
# SpringMVC使用MultipartFile 实现异步上传方法介绍
# springmvc处理异步请求的示例
# SpringMVC环境下实现的Ajax异步请求JSON格式数据
# Spring-MVC异步请求之Servlet异步处理
# 上传文件
# 上传
# 文件上传
# 会有
# 值为
# 大家多多
# basePath
# getScheme
# getContextPath
# request
# head
# meta
# lang
# getServerName
# getServerPort
# charset
# taglib
# uri
# html
# pageEncoding
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
jQuery中的100个技巧汇总
Laravel如何自定义分页视图?(Pagination示例)
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
简单实现jsp分页
在线制作视频的网站有哪些,电脑如何制作视频短片?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Laravel如何创建自定义Artisan命令?(代码示例)
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
WEB开发之注册页面验证码倒计时代码的实现
北京企业网站设计制作公司,北京铁路集团官方网站?
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何用y主机助手快速搭建网站?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Python文件流缓冲机制_IO性能解析【教程】
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
用v-html解决Vue.js渲染中html标签不被解析的问题
Laravel distinct去重查询_Laravel Eloquent去重方法
php json中文编码为null的解决办法
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何注册花生壳免费域名并搭建个人网站?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
如何快速搭建高效服务器建站系统?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
活动邀请函制作网站有哪些,活动邀请函文案?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
如何在企业微信快速生成手机电脑官网?
JavaScript实现Fly Bird小游戏
网站制作价目表怎么做,珍爱网婚介费用多少?
linux写shell需要注意的问题(必看)
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
昵图网官网入口 昵图网素材平台官方入口
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
利用python获取某年中每个月的第一天和最后一天
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel安装步骤详细教程_Laravel环境搭建指南
Java类加载基本过程详细介绍
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
JavaScript如何操作视频_媒体API怎么控制播放
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境

