Java如何解决form表单上传文件,以及页面返回处理结果通知!
2017-03-22 11:02
946 查看
前端JSP代码
JS代码
以上做完,就能够正常的请求后台了,但是又出现一个新的问题,前端页面总是执行error,可是请求是成功的。然后继续修改。
在Controller类中设置response.setContentType("text/html; charset=utf-8"); 这里需要注意$.ajax块中dataType: "JSON",这里必须将reponse 的contenType响应头信息设置成
"text/html; charset=utf-8" 否则在页面总是会弹出 “出错”。
结果测试:
<form id='formSumbit' class='form-horizontal' action='/ncpay/route/chlsubmcht/batchImpor' method='post' enctype='multipart/form-data'> <input type='file' name='file'> <input type='submit' value='上传文件'/> </form>
JS代码
$(function(){ $('#formSumbit').submit(function (event) { //首先验证文件格式 var fileName = $(this).find("input[name=file]").val(); if (fileName === '') { alert('请选择文件'); return; } var fileType = (fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length)).toLowerCase(); if (fileType !== 'xls' && fileType !== 'xlsx') { alert('文件格式不正确,excel文件!'); return; } event.preventDefault(); var form = $(this); if (form.hasClass('upload')) { //普通表单 $.ajax({ type: form.attr('method'), url: form.attr('action'), data: form.serialize(), dataType: "JSON" }).success(function () { //成功提交 }).fail(function (jqXHR, textStatus, errorThrown) { //错误信息 }); } else { // mulitipart form,如文件上传类 var formData = new FormData(this); $.ajax({ type: form.attr('method'), url: form.attr('action'), data: formData, dataType: "JSON", mimeType: "multipart/form-data", contentType: false, cache: false, processData: false, error : function(XHR, textStatus, errorThrown) { alert("网络错误!XHR=" + XHR + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown); }, success : function(data) { alert(data[0].message); } }); } }); });
以上做完,就能够正常的请求后台了,但是又出现一个新的问题,前端页面总是执行error,可是请求是成功的。然后继续修改。
在Controller类中设置response.setContentType("text/html; charset=utf-8"); 这里需要注意$.ajax块中dataType: "JSON",这里必须将reponse 的contenType响应头信息设置成
"text/html; charset=utf-8" 否则在页面总是会弹出 “出错”。
@RequestMapping(value="/batchImpor",method=RequestMethod.POST) public @ResponseBody String v_batch_impor(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response){ response.setContentType("text/html; charset=utf-8"); ReturnJson json = new ReturnJson(); try { ImportExcel ei = new ImportExcel(file, 0, 0); List<bz_chl_sub_mcht> list = ei.getDataList(bz_chl_sub_mcht.class); for (bz_chl_sub_mcht sub_mcht : list) { recordModify(sub_mcht, ModifyType.ADD); } //service_chlsubmcht.saveAll(list); json.setStatus("0"); json.setMessage("数据导入成功!"); } catch (Exception e) { json.setStatus("1"); json.setMessage("数据导入失败,请检查数据是否正确或部分数据是否唯一!"); e.printStackTrace(); } return JSONArray.fromObject(json).toString(); }
结果测试:
相关文章推荐
- JAVA_解决IE浏览器文件上传时返回结果变成下载
- 页面前台通过JS访问WEB SERVICES,以及如何处理返回结果.
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- Form表单多文件改名ajax提交上传及java后台处理
- java如何获取jsp页面上传的文件路径 20 前台jsp: <form action="AA.do?method=yktAdd" method="post" > <input type='text'
- 如何利用Axis2+Spring实现文件上传(支持jsp页面的form表单提交),Android客户端调用
- 文件上传 通过隐藏iframe的方式来实现ajax上传文件并返回处理结果 ie乱码问题解决
- 上传文件form表单enctype="multipart/form-data"传值解决办法(代原代码)
- java+jquery form实现异步上传文件,并且成功返回
- 一般处理程序上传文件(html表单上传、aspx页面上传)
- [原创]复合控件中如何将客户端的处理结果通知服务器端的解决办法
- jsoup本地tomcat 可以表单提交抓取查询结果,上传到服务器上可以抓去到页面结果确实查询结果不同 已解决
- JAVA 文件上传后台判断浏览器的类型以及JDK1.5和1.6处理的不同
- 主题: 如何取得批量上传(或单张)图片后返回的文件列表信息(已解决)
- 在用form 提交请求时,在请求处理完成后想要在JAVA后台设置返回信息状态展示到页面
- 解决问题:EXT4 filefield 文件上传在IE8上返回状态无效,弹出下载页面
- java ajaxForm 实现文件上传后台成功,页面走error方法
- 使用java的HttpURLconnnection模拟form上传 以及apache httpClient 直接上传文件
- 使用FileUtils进行Java中Form表单上传文件