廣告位是網站中必不可少的內容之一,也是能直接給我們網站帶來經濟收益的內容之一。好的廣告位不僅不會強賓壓主,而會為我們的網站錦上添花,起到畫龍點睛的作用,因此設計好廣告位也是開發過程中一大重要環節。
最近在做一個珠寶檢測站的項目,其中管理頁面就涉及到了廣告位管理,之前項目中也有不少有廣告位的,但都不是自己負責。其大致思路就是要從管理頁面上傳相應的圖片,並且要儲存到資料庫,然後從所有上傳過的圖片中選擇一張顯示到網站首頁。原理並不太難,但是鑒於效能問題,我們只需要資料庫儲存圖片的路徑即可。
重點是在MVC+WCF這樣的架構之下,可能稍微有點難度,經過網上博友的分享以及團隊內交流,實現了最基本的上傳和儲存資料庫功能。網站首頁有五個廣告位,由於廣告位的位置以及尺寸不同,當然收費標準也是不一樣的,哈哈~~我們初步設計每一個廣告位有單獨的嵌入式管理單元,我的具體實現是廣告位的管理頁面有五個Datagrad,每個表格用來顯示資料庫中儲存的本類廣告位的圖片路徑以及相應資訊。
如:
表格中顯示資料庫所有資料,通過操作是否顯示列的選項按鈕來確定首先顯示哪一張廣告圖片。(需要把選項按鈕的name屬性統一命名,整個表格的選項按鈕設為一組)
這裡我們重點說的就是檔案上傳,為什麼只在資料庫儲存路徑而不直接儲存圖片呢?首先這是大多數開發人員的做法,其次從一定程度上儲存路徑要比圖片效能高一些。我實在MVC中實現的,話不多說,直接上代碼。
View
<h2>上傳檔案</h2>@using(Html.BeginForm("FileUpLoad","AdvertisementManage",FormMethod.Post,new{enctype="multipart/form-data"})){<br />@*輸入贊助商名稱*@<input type="text" name="AdvertisementName" />@*上傳檔案*@<input type="file" name="file" />@*提交*@<input type="submit" name="UploadFile" />}
Controller
public ActionResult FileUpLoad() { HttpPostedFileBase file = Request.Files["file"];//獲得上傳檔案 //判斷檔案內容是否為空白 if (file != null) { string filePath = Path.Combine(HttpContext.Server.MapPath("../images"), Path.GetFileName(file.FileName)); //設定檔案儲存路徑 file.SaveAs(filePath);//將檔案儲存到filePath路徑下 Guid g = new Guid("6dc3f7db-f038-4c48-9564-0ac52e0e29c1"); //執行個體化viewmodel,給屬性賦值 AdvertisementManageViewModel advertisement=new AdvertisementManageViewModel(); advertisement .AdvertisementID=System.Guid.NewGuid(); advertisement.AdvertisementName = Request.Form["AdvertisementName"]; advertisement.AdvertisementUrl = filePath; advertisement.TimeStamp = DateTime.Now; advertisement.UserID = g; advertisement.IsEnable = 0; var service = ServiceFactory.GetService();//聲明WCF服務 var s = service.AddAdvertisement(advertisement);//調用服務端的添加方法,將廣告內容儲存到資料庫 //如果儲存成功,返回FileUpLoad視圖 if (true) { return RedirectToAction("FileUpLoad", "AdvertisementManage"); } } else { //return Content("<script>alert('上傳失敗!')</script>"); return View(); } }
以上這些都是目前實現的功能,樣式上和邏輯上都需要最佳化,簡單的原理分享給大家,有不足之處請批評指正。
廣告位是網站中必不可少的內容之一,也是能直接給我們網站帶來經濟收益的內容之一。好的廣告位不僅不會強賓壓主,而會為我們的網站錦上添花,起到畫龍點睛的作用,因此設計好廣告位也是開發過程中一大重要環節。
最近在做一個珠寶檢測站的項目,其中管理頁面就涉及到了廣告位管理,之前項目中也有不少有廣告位的,但都不是自己負責。其大致思路就是要從管理頁面上傳相應的圖片,並且要儲存到資料庫,然後從所有上傳過的圖片中選擇一張顯示到網站首頁。原理並不太難,但是鑒於效能問題,我們只需要資料庫儲存圖片的路徑即可。
重點是在MVC+WCF這樣的架構之下,可能稍微有點難度,經過網上博友的分享以及團隊內交流,實現了最基本的上傳和儲存資料庫功能。網站首頁有五個廣告位,由於廣告位的位置以及尺寸不同,當然收費標準也是不一樣的,哈哈~~我們初步設計每一個廣告位有單獨的嵌入式管理單元,我的具體實現是廣告位的管理頁面有五個Datagrad,每個表格用來顯示資料庫中儲存的本類廣告位的圖片路徑以及相應資訊。
如:
表格中顯示資料庫所有資料,通過操作是否顯示列的選項按鈕來確定首先顯示哪一張廣告圖片。(需要把選項按鈕的name屬性統一命名,整個表格的選項按鈕設為一組)
這裡我們重點說的就是檔案上傳,為什麼只在資料庫儲存路徑而不直接儲存圖片呢?首先這是大多數開發人員的做法,其次從一定程度上儲存路徑要比圖片效能高一些。我實在MVC中實現的,話不多說,直接上代碼。
View
<h2>上傳檔案</h2>@using(Html.BeginForm("FileUpLoad","AdvertisementManage",FormMethod.Post,new{enctype="multipart/form-data"})){<br />@*輸入贊助商名稱*@<input type="text" name="AdvertisementName" />@*上傳檔案*@<input type="file" name="file" />@*提交*@<input type="submit" name="UploadFile" />}
Controller
public ActionResult FileUpLoad() { HttpPostedFileBase file = Request.Files["file"];//獲得上傳檔案 //判斷檔案內容是否為空白 if (file != null) { string filePath = Path.Combine(HttpContext.Server.MapPath("../images"), Path.GetFileName(file.FileName)); //設定檔案儲存路徑 file.SaveAs(filePath);//將檔案儲存到filePath路徑下 Guid g = new Guid("6dc3f7db-f038-4c48-9564-0ac52e0e29c1"); //執行個體化viewmodel,給屬性賦值 AdvertisementManageViewModel advertisement=new AdvertisementManageViewModel(); advertisement .AdvertisementID=System.Guid.NewGuid(); advertisement.AdvertisementName = Request.Form["AdvertisementName"]; advertisement.AdvertisementUrl = filePath; advertisement.TimeStamp = DateTime.Now; advertisement.UserID = g; advertisement.IsEnable = 0; var service = ServiceFactory.GetService();//聲明WCF服務 var s = service.AddAdvertisement(advertisement);//調用服務端的添加方法,將廣告內容儲存到資料庫 //如果儲存成功,返回FileUpLoad視圖 if (true) { return RedirectToAction("FileUpLoad", "AdvertisementManage"); } } else { //return Content("<script>alert('上傳失敗!')</script>"); return View(); } }
以上就是MVC+WCF架構下廣告位管理——檔案上傳 的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!