ホームページ >バックエンド開発 >C#.Net チュートリアル >MVC+WCFフレームワークによる広告スペース管理 - ファイルアップロード
広告スペースはウェブサイトに欠かせないコンテンツの一つであり、ウェブサイトに直接経済的利益をもたらすコンテンツの一つでもあります。優れた広告スペースはゲストを圧倒するだけでなく、Web サイトの美しさを高め、最後の仕上げにもなります。そのため、優れた広告スペースをデザインすることも開発プロセスの重要なステップです。
現在、宝石検査所のプロジェクトに携わっており、管理ページには広告スペースの管理が含まれています。これまでのプロジェクトでは広告スペースがたくさんありましたが、私はそれらを担当していませんでした。一般的なアイデアは、管理ページから該当する写真をアップロードしてデータベースに保存し、アップロードされたすべての写真の中から 1 つを選択して Web サイトのトップページに表示することです。原理はそれほど難しくありませんが、パフォーマンスの問題を考慮すると、データベースに画像を保存するためのパスのみが必要です。
要は、MVC+WCF のようなフレームワークでは、オンライン ブロガーとの共有やチーム内でのコミュニケーションを経て、データベースのアップロードと保存という最も基本的な機能が実現されるのは少し難しいかもしれません。ウェブサイトのトップページには 5 つの広告スペースがあり、広告スペースの位置とサイズが異なるため、当然料金基準も異なります (笑) 当初、各広告スペースは個別の管理単位を持つように設計されていました。具体的な実装は、広告スペースの管理です。このページには 5 つの Datagrads があり、各テーブルは、データベースに保存されているこのタイプの広告スペースの画像パスと対応する情報を表示するために使用されます。
以下に示すように:
データベース内のすべてのデータが表に表示され、列を表示するかどうかのラジオボタンを操作することで、どの広告画像を最初に表示するかを決定できます。 (ラジオボタンの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(); } }
Renderings
上記は現在実装されている機能であり、簡単な原則は全員に共有される必要があります。それらを批判し、修正してください。
広告スペースはウェブサイトに欠かせないコンテンツの一つであり、ウェブサイトに直接経済的利益をもたらすコンテンツの一つでもあります。優れた広告スペースはゲストを圧倒するだけでなく、Web サイトの美しさを高め、最後の仕上げにもなります。そのため、優れた広告スペースをデザインすることも開発プロセスの重要なステップです。
現在、宝石検査所のプロジェクトに携わっており、管理ページには広告スペースの管理が含まれています。これまでのプロジェクトでは広告スペースがたくさんありましたが、私はそれらを担当していませんでした。一般的なアイデアは、管理ページから該当する写真をアップロードしてデータベースに保存し、アップロードされたすべての写真の中から 1 つを選択して Web サイトのトップページに表示することです。原理はそれほど難しくありませんが、パフォーマンスの問題を考慮すると、データベースに画像を保存するためのパスのみが必要です。
要は、MVC+WCF のようなフレームワークでは、オンライン ブロガーとの共有やチーム内でのコミュニケーションを経て、データベースのアップロードと保存という最も基本的な機能が実現されるのは少し難しいかもしれません。ウェブサイトのトップページには 5 つの広告スペースがあり、広告スペースの位置とサイズが異なるため、当然料金基準も異なります (笑) 当初、各広告スペースは個別の管理単位を持つように設計されていました。具体的な実装は、広告スペースの管理です。このページには 5 つの Datagrads があり、各テーブルは、データベースに保存されているこのタイプの広告スペースの画像パスと対応する情報を表示するために使用されます。
以下のように:
データベース内のすべてのデータが表に表示され、列を表示するかどうかのラジオボタンを操作することで、どの広告画像を最初に表示するかを決定できます。 (ラジオボタンの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(); } }
Rendering
上記は、MVC+WCF フレームワークでの広告スペース管理のコンテンツです - ファイルのアップロード 詳細については、PHP 中国語 Web サイト (www. .php.cn)!