天天看點

bboss mvc大檔案上傳及or mapping存儲大檔案機制詳解

繼續上兩篇文章:

bboss mvc檔案上傳下載下傳實戰演練-

http://yin-bp.iteye.com/blog/1130035 bboss mvc檔案上傳下載下傳實戰進階- http://yin-bp.iteye.com/blog/1131637

本文着重介紹bboss mvc大檔案上傳和利用持久層的or mapping機制存儲大檔案功能介紹,切入正題

功能點說明:

1.jsp form附件上傳表單

2.jquery easyui 表單送出

3.mvc控制附件處理方法

4.綁定附件值對象

5.利用or mapping技術持久化附件資訊和附件内容

大緻流程如下:

通過将表單送出的附件資訊傳遞給控制方法,mvc将表單資料以及附件資訊封裝到DeskTopBackGround對象中,利用持久層元件将該附件資訊存儲到資料庫中。

下面逐一說明:

首先介紹各個層面都要用到的附件值對象

public class DeskTopBackGround {	
	private String cn_name;
	private Timestamp creatdate;
         private String filename;
	@Column(type="blobfile")
	private MultipartFile picture;
         。。。//省略get/set方法
}      

DeskTopBackGround 中的屬性MultipartFile picture包含了附件資訊和附件内容,需要注意的是,必須通過@Column(type="blobfile")注解說明附件類型,即是一個blob二進制附件還是一個clob文本附件,分别對應為:@Column(type="blobfile")和@Column(type="clobfile"),這樣ormapping機制就能清楚地進行相應的處理。

jsp 附件上傳表單

<form action=""  method="POST" id="addbackground" enctype="multipart/form-data">
    <table>
    <tr>
       <td>
    	名稱:<input type="text" name="cn_name" id="cn_name"/>
       </td>
    </tr>
     <tr>
     	<td>
   		 附件:<input type="file" name="picture" id="file" />
     	</td>
   	 </tr>
    <tr>
    	<td>
    <input type="button" class="button" value="添加背景圖檔" onclick="addBackGround(this)" />
	 	</td>
 	</tr>									
	</table>									
	</form>	      

jquery-easyui form表單送出操作:

$("#addbackground").form('submit', {
				    "url": "uploadBackGround.page",//控制器請求url
				    onSubmit:function(){			
						//顯示遮罩							
						blockUI();	
				    },
				    success:function(responseText){	
				    	//去掉遮罩	
						unblockUI();
						if(responseText == "success"){
							$.messager.alert("提示對話框" , "附件上傳成功!");
							queryList();
						}
						else
						$.messager.alert("提示對話框" , "附件上傳失敗:"+responseText);	
				    }
				});	      

mvc控制附件處理方法

public  @ResponseBody String uploadBackGround( DeskTopBackGround bean)
	{
		try
		{
			bean.setFilename(bean.getPicture().getOriginalFilename());//設定附件名稱到filename屬性
bean.setCreatdate(new Timestamp(new Date().getTime()));//設定建立時間
			String sql = "insert into td_sm_desktopstylecustom(filename,creatdate,cn_name,picture) values(#[filename],#[creatdate],#[cn_name],#[picture])";
			SQLExecutor.insertBean(sql, bean);
			return "success";
		}
		catch (Exception e)
		{
			return "fail:"+e.getMessage();
		}
		
	}      

控制方法包含一個DeskTopBackGround bean參數,mvc架構根據表單的資訊生成DeskTopBackGround 對象執行個體,uploadBackGround方法對該執行個體進行相應的處理後,通過持久層的or mapping接口存儲到資料庫表中:

SQLExecutor.insertBean(sql, bean);

然後将處理結果資訊相應到用戶端,用戶端進行相應的提示:

$.messager.alert("提示對話框" , "附件上傳成功!");

後記

到此本文的正文内容就介紹完了,至于mvc配置檔案和持久層資料源配置請參考部落格中相關文章:

bboss mvc基礎配置介紹-

http://yin-bp.iteye.com/blog/1139608

bbossgroups 開發系列文章之-最佳實踐-

http://bbossgroups.group.iteye.com/group/wiki/3092-mvc-bboss-config

bboss persistent架構資料庫連接配接池配置介-

http://yin-bp.iteye.com/blog/352599