首页 > 代码库 > [学习笔记]--Jfinal 表单提交附件
[学习笔记]--Jfinal 表单提交附件
最近,项目里面用到了Jfinal 里面的上传附件。Jfinal 的Controller 里面提供了一个 getFile系列方法提供文件上传。
我这里呢,是文件上传和表单参数一起提交。页面类似下图:
这里form表单里面使用了 enctype="multipart/form-data" 。先看看Jfinal手册的说明吧!大家看了就知道了
然后还有个问题 如果是表单提交 还不可以用ajax 提交,具体的原因呢也找到了 http://www.oschina.net/question/941098_93842
这个就是为什么不可以使用ajax 提交了的原因。然后我们可以在页面里面 这样提交
方法一:
function tosave(){ var data = http://www.mamicode.com/$("#表单id").serialize();>
在提交按钮设置一个 onclick 事件。这样我们就把前台的表单里面的 A,B,C,D...等参数 我们就可以提交到后台了!后台代码:
UploadFile file = getFile("filedata", path, 200 * 1024 * 1024, "UTF-8");//上传文件 并且获取表单参数
好,到这里基本文件上传和表单里面的参数 我都可以获取到了。以往在这里 我们都是保存成功后 提示保存成功,并且刷新页面。但是这里我们没有返回值,也许你可以说你可以重定向或是转发啊。额,我只想说我这里的需求就是提示保存成功,并且刷新列表页面,或是提示保存失败,
也同样要刷新页面。
so ..我就找了第二种方法提交
$('#表单id').ajaxForm({ target:'#output1', iframe:true, url : 'abc/saveOrUpdate', beforeSubmit: function (){ var filename = $("input[name='filedata']").val(); // alert($("#equ_no").val()); // alert(filename); // if(filename.EndWith(".png") || filename.EndWith(".jpg") // || filename.EndWith(".jpeg")|| filename.EndWith(".ico")){ // return window.confirm("确定要处理此文件吗?"); // }else{ // alert("请上传图片文件!"); // return false; // } } });
这里用的是jquery 表单插件ajaxForm 具体用法去百度,我也是赶猪上架。好吧 继续看 我改进了的后台 部分代码
String message = "操作错误"; String result = Setting.OPTION_FAILUE;<span style="font-family: Arial, Helvetica, sans-serif;">UploadFile file = getFile("filedata", path, 200 * 1024 * 1024, "UTF-8");//上传文件 并且获取表单参数</span>this.setAttr("result", result); this.setAttr("message", message); this.renderHtml("<script>parent.showResponse('"+result+"','"+message+"')</script>");
有木有发现 这里的renderHtml就类似 之前的 rendJson();这后面的 代码 有的涉及到了 其他地方 所以我就选了一下 相关的出来,大家可以看看这个思路。写作水平有限,请勿喷~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。