廣告位是網站中不可或缺的內容之一,也是能直接為我們網站帶來經濟效益的內容之一。好的廣告位不但不會強賓壓主,反而會為我們的網站錦上添花,起到畫龍點睛的作用,因此設計好廣告位也是開發過程中一大重要環節。
最近在做一個珠寶檢測站的項目,其中管理頁面就涉及到了廣告位管理,之前項目中也有不少有廣告位的,但都不是自己負責。其大致想法就是要從管理頁面上傳對應的圖片,並且要儲存到資料庫,然後從所有上傳過的圖片中選擇一張顯示到網站首頁。原理並不太難,但是鑑於效能問題,我們只需要資料庫保存圖片的路徑。
重點是在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架構下廣告位管理— —文件上傳 的內容,更多相關內容請關注PHP中文網(www.php.cn)!