springmvc上传文件异常
症状:
error:
org.springframework.web.multipart.MultipartException: Current request is not a multipart request
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:188)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:104)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
原因:
jsp中form表单 ajax提交 不能用序列化,序列化方法只能序列化非文件格式的数据 文件格式则不被序列化,后台接收不到文件数据
用 FormData来封装数据
解决方法:
jquery尽量用新版
js:
var formData = new FormData($( "#addMemberForm" )[0]);
$.ajax({
type : "POST",
url : "<%=basePath%>manage/memberActive/add",
data : formData,
async: false,
cache: false,
dataType : "json",
contentType: false,
processData: false,
success: function(result){
console.log(result);
if(result){
window.location.href = "<%=basePath%>manage/memberActive/list";
}else{
alert(result.msg);
}
}
});
jsp:
<form id="addMemberForm" >
<div class="loadingActive-left">
<input type="text" name="titel" id="titel" placeholder="请输入标题" ></input>
<div class="uploadBox">
<div class="big-photo">
<div id="preview">
<img id="imghead" border="0" src="<%=basePath%>resources/images/upload.jpg" width="270"
height="100" onclick="$('#previewImg').click();"></img>
</div>
<input type="file" onchange="previewImage(this)"
style="display: none;" id="previewImg" name="file"></input>
</div>
</div>
<textarea style="width:100%; height:41%;resize:none" rows="9" cols="75" name="content" id="content" placeholder="请输入内容..." ></textarea>
</div>
</form>
action:
@RequestMapping(value = "add", method = RequestMethod.POST)
@ResponseBody
public BaseResponse<Boolean> addMemberActivity(HttpServletRequest request,
@RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
MemberActivity mActivitie = new MemberActivity();
UploadUtils up = new UploadUtils();
String Imgname = file.getOriginalFilename().substring(0, file.getOriginalFilename().length() - 4);
String url = up.uploadFile(1, 1, Imgname, file);
mActivitie.setStatusId((short) 1);
mActivitie.setTitel(request.getParameter("titel"));
mActivitie.setCoverUrl(url);
mActivitie.setShortDesc("无简介");
mActivitie.setContent(request.getParameter("content"));
mActivitie.setTotalPrice(0.01);
mActivitie.setDiscountPrice(0.01);
mActivitie.setCreateTime(new Timestamp(System.currentTimeMillis()));
memberActivityService.addMemberActivity(mActivitie);
return new BaseResponse<Boolean>(true);
}
springmvc上传文件异常的更多相关文章
- springmvc上传文件,抄别人的
SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是 ...
- 2. SpringMVC 上传文件操作
1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...
- SpringMVC上传文件总结
如果是maven项目 需要在pom.xml文件里面引入下面两个jar包 <dependency> <groupId>commons-fileupload</groupId ...
- 使用springMVC上传文件
control层实现功能: @RequestMapping(value="upload2") public String upLoad2(HttpServletRequest re ...
- SpringMVC上传文件(图片)并保存到本地
SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multi ...
- SpringMVC 上传文件 MultipartFile 转为 File
在使用 SpringMVC 上传文件时,接收到的文件格式为 MultipartFile,但是在很多场景下使用都需要File格式的文件,记录下以便日后使用. 以下mFile为MultipartFile文 ...
- springmvc 上传文件时的错误
使用springmvc上传文件一直失败,文件参数一直为null, 原来是配置文件没写成功. <bean id="multipartResolver" class=" ...
- springmvc上传文件报错org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.multipart.MultipartFile]
在用springmvc+mybatis进行项目开发时,上传文件抛异常... org.springframework.beans.BeanInstantiationException: Could no ...
- SpringMVC上传文件的三种方式(转)
直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...
随机推荐
- XML读写工具类
摘要:①读取XML文件,生成pojo对象:②将对象信息保存到xml中. 步骤: ①新建一个普通的java类BasePage: package com.test.selenium.pages; impo ...
- 解决旋转屏幕闪退在androidManifest.template.xml里,activity项添加:
解决旋转屏幕闪退在androidManifest.template.xml里,activity项添加:android:configChanges="orientation|keyboard ...
- linux下升级php5.4到php5.6
进入终端后查看php版本 php -v 输出可能如下: PHP 5.4.35 (cli) (built: Nov 14 2014 07:04:10) Copyright (c) 1997-2014 T ...
- django中orm多表查询,减少数据库查询操作
.select_related() 的使用
- Mac018--VisualBox & ubuntu 安装
一.安装虚拟机VMware 参考博客:https://blog.csdn.net/u013142781/article/details/50529030 Step1:下载ubuntu镜像 注:选择Ub ...
- Mac012--FinalShell SSH工具
Mac--FinalShell SSH工具 FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux FinalShell,国货产品,同类产品有 ...
- Smashing Nodejs 读书笔记(一)
了不起的Node.js:将JavaScript进行到底 书名:SMASHING Node.js : JavaScript Everywhere 原作者:(美)劳奇 Rauch.G 译者:赵静 出版日期 ...
- Log4j指定输出日志的文件
在Log4j的配置文件中,有一个log4j.rootLogger用于指定将何种等级的信息输出到哪些文件中, 这一项的配置情况如下: log4j.rootLogger=日志等级,输出目的地1,输出目的地 ...
- Excel VBA获取当文件下级子目录或目录中文件
'====================================================================== '功能: 查找指定文件夹含子文件夹内所有文件名或文件夹名 ...
- EOJ Monthly 2019.2 E. 中位数 (二分+dfs)
题目传送门 题意: 在一个n个点,m条边的有向无环图中,求出所有从1到n 的路径的中位数的最大值 一条路径的中位数指的是:一条路径有 n 个点, 将这 n 个点的权值从小到大排序后,排在位置 ⌊n2⌋ ...