繼續上兩篇文章:
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/1139608bbossgroups 開發系列文章之-最佳實踐-
http://bbossgroups.group.iteye.com/group/wiki/3092-mvc-bboss-configbboss persistent架構資料庫連接配接池配置介-
http://yin-bp.iteye.com/blog/352599