[學習筆記]--Jfinal 表單提交附件

近期。項目裏面用到了Jfinal 裏面的上傳附件。html

Jfinal 的Controller 裏面提供了一個 getFile系列方法提供文件上傳。java

我這裏呢,是文件上傳和表單參數一塊兒提交。jquery

頁面相似下圖:ajax

         

這裏form表單裏面使用了 enctype="multipart/form-data" 。ui

先看看Jfinal手冊的說明吧!你們看了就知道了this


而後還有個問題 假設是表單提交 還不可以用ajax 提交,詳細的緣由呢也找到了 http://www.oschina.net/question/941098_93842 url

這個就是爲何不可以使用ajax 提交了的緣由。spa

而後咱們可以在頁面裏面 這樣提交.net

方法一:插件

function tosave(){
	var data = $("#表單id").serialize();
	$("#<span style="font-family: Arial, Helvetica, sans-serif;">表單id</span>").attr("action","equipment/saveOrUpdate?"+data);//跳到指定的contronller
	$("#表單id").submit();//提交
};

在提交button設置一個 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();

這後面的 代碼 有的涉及到了 其它地方 因此我就選了一下 相關的出來,你們可以看看這個思路。寫做水平有限。請勿噴~  

相關文章
相關標籤/搜索