附件上传报400错误,求大神看下是那个地方出问题?

御命丹心 2017-06-30 01:52:27
前端代码如下
<div class="control-group">
<label class="control-label">
<span class="help-inline"><font color="red">*</font></span>
营业执照上传:
</label>
<div class="controls">
<form id="file_upload_id" name="file_upload_name" enctype="multipart/form-data" method="post">
 <input type="file" name="file_upload"/>
<input type="button" value="上传" id="temp"/><br>
</form>
 <div>
 <span id="typeValue"></span>
 <input id="type" type="hidden" name="input_type">
 </div>
 <div>
 <span id="sizeValue"></span>
 <input id="size" type="hidden" name="input_size">
</div>
</div>
$("#temp").click(function () {
var formdata = new FormData($('#file_upload_id')[0]);
$.ajax({
url: '${ctx}/gsp/t01compinfonew/t01CompInfoNew/upload',
type: 'POST',
data: formdata,
dataType:'JSON',
cache: false,
processData: false,
contentType: false ,
success : function(date){
alert("success");
},
error : function(e){
alert("error");
}
});
})
});
后端代码如下:
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public HashMap<String,Object> upload(@RequestParam("file_upload")MultipartFile file,@RequestParam("input_type") String extName, @RequestParam("input_size") String size, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws ServletException, IOException {
HashMap<String,Object> map = new HashMap<String,Object>();
request.setCharacterEncoding("UTF-8");// 解决上传的中文文件乱码问题
response.setContentType("text/html;charset=UTF-8");
long fileSizeMax=Long.parseLong(size);
String mes =t01CompInfoNewService.doUpload(file,request, extName, fileSizeMax);
map.put("mes", mes);
return map;
}
点击上传按钮报form:173 POST http://localhost:8080/jeesite/a/gsp/t01compinfonew/t01CompInfoNew/upload 400 (Bad Request)错误,求大神指点是什么地方出问题?调试了一天都没解决。
...全文
954 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
IWantToBeAHacker 2017-12-27
  • 打赏
  • 举报
回复
楼主解决了吗?我也遇到这个问题,怎么解决的
  • 打赏
  • 举报
回复
把 dataType:'JSON', 环城 dataType:'text',试试 success : function(date){ 原谅我不怀好意的笑了
御命丹心 2017-07-01
  • 打赏
  • 举报
回复
引用 7 楼 zhou2015bo 的回复:
[quote=引用 5 楼 YouLanJian 的回复:] [quote=引用 4 楼 zhou2015bo 的回复:] <form id="file_upload_id" name="file_upload_name" enctype="multipart/form-data" method="post"> <input type="file" name="file_upload"/> <input type="button" value="上传" id="temp"/><br> </form> 仔细看了下,你form里只包含了file_upload这一个参数type和size都在from外面
我把type和和size移动到form里面还是取不到值,但alert(type)和alert(size)是可以取到值的。[/quote] 那你给from加个action 然后路径是/gsp/t01compinfonew/t01CompInfoNew/upload 把button换成submit,再试试[/quote] 可以取到值,但还是报400的错误。
御命丹心 2017-07-01
  • 打赏
  • 举报
回复
引用 9 楼 pany1209 的回复:

$.ajaxFileUpload({
			url:"路径",
			type:"post",
			secureuri: false, 
			fileElementId: 'input的id',
			contentType: false,  
            processData: false, 
            data:{"input_type":input_type,"input_size":input_szie}
            dataType:'json',
			success:function(data){
				//....
			},
			error:function(data){
				//....
			}
		}); 

浏览器的控制台还是报400的错误,但我点击错误地址出现:HTTP Status 405 - Request method 'GET' not supported,我前台的方法和后台方法里面都是post请求,请问大神这可能是那个地方出了问题?如下是浏览器的请求信息: Request URL:http://localhost:8080/jeesite/a/gsp/t01compinfonew/t01CompInfoNew/upload Request Method:POST Status Code:400 Bad Request Remote Address:[::1]:8080 Referrer Policy:no-referrer-when-downgrade Response Headers view source Connection:close Content-Language:en Content-Length:1074 Content-Type:text/html;charset=utf-8 Date:Sat, 01 Jul 2017 04:38:45 GMT Server:Apache-Coyote/1.1 Request Headers view source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, br Accept-Language:zh-CN,zh;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:225542 Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryuhP9s3HTvoCYMjwf Cookie:JSESSIONID=BF17F21E5F81E2CCDB8C673FE7094044 Host:localhost:8080 Origin:http://localhost:8080 Referer:http://localhost:8080/jeesite/a/gsp/t01compinfonew/t01CompInfoNew/form Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Request Payload ------WebKitFormBoundaryuhP9s3HTvoCYMjwf Content-Disposition: form-data; name="file_upload"; filename="1.jpg.gif" Content-Type: image/gif ------WebKitFormBoundaryuhP9s3HTvoCYMjwf--
李德胜1995 2017-06-30
  • 打赏
  • 举报
回复

$.ajaxFileUpload({
			url:"路径",
			type:"post",
			secureuri: false, 
			fileElementId: 'input的id',
			contentType: false,  
            processData: false, 
            data:{"input_type":input_type,"input_size":input_szie}
            dataType:'json',
			success:function(data){
				//....
			},
			error:function(data){
				//....
			}
		}); 

御命丹心 2017-06-30
  • 打赏
  • 举报
回复
引用 6 楼 qq_24652051 的回复:
url: '${ctx}/gsp/t01compinfonew/t01CompInfoNew/upload', 没有.do或者.action吗 success : function(date){ 应该是data吧
我的web.xml文件中设置的过滤条件是/*,不是/*.do或者/*.action
云墨浅殇 2017-06-30
  • 打赏
  • 举报
回复
引用 5 楼 YouLanJian 的回复:
[quote=引用 4 楼 zhou2015bo 的回复:] <form id="file_upload_id" name="file_upload_name" enctype="multipart/form-data" method="post"> <input type="file" name="file_upload"/> <input type="button" value="上传" id="temp"/><br> </form> 仔细看了下,你form里只包含了file_upload这一个参数type和size都在from外面
我把type和和size移动到form里面还是取不到值,但alert(type)和alert(size)是可以取到值的。[/quote] 那你给from加个action 然后路径是/gsp/t01compinfonew/t01CompInfoNew/upload 把button换成submit,再试试
coder_will 2017-06-30
  • 打赏
  • 举报
回复
url: '${ctx}/gsp/t01compinfonew/t01CompInfoNew/upload', 没有.do或者.action吗 success : function(date){ 应该是data吧
御命丹心 2017-06-30
  • 打赏
  • 举报
回复
引用 4 楼 zhou2015bo 的回复:
<form id="file_upload_id" name="file_upload_name" enctype="multipart/form-data" method="post"> <input type="file" name="file_upload"/> <input type="button" value="上传" id="temp"/><br> </form> 仔细看了下,你form里只包含了file_upload这一个参数type和size都在from外面
我把type和和size移动到form里面还是取不到值,但alert(type)和alert(size)是可以取到值的。
云墨浅殇 2017-06-30
  • 打赏
  • 举报
回复
<form id="file_upload_id" name="file_upload_name" enctype="multipart/form-data" method="post"> <input type="file" name="file_upload"/> <input type="button" value="上传" id="temp"/><br> </form> 仔细看了下,你form里只包含了file_upload这一个参数type和size都在from外面
御命丹心 2017-06-30
  • 打赏
  • 举报
回复
引用 1 楼 zhou2015bo 的回复:
ajax的 data: 换成这样试试$('#file_upload_id'').serialize();
还是不行啊,我alert下$('#file_upload_id'').serialize(); 的值为空啊
御命丹心 2017-06-30
  • 打赏
  • 举报
回复
还是不行啊,我alert下$('#file_upload_id'').serialize(); 的值为空啊
云墨浅殇 2017-06-30
  • 打赏
  • 举报
回复
ajax的 data: 换成这样试试$('#file_upload_id'').serialize();

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧