MVC+WCF框架下广告位管理——文件上传

广告位是网站中必不可少的内容之一,也是能直接给我们网站带来经济收益的内容之一。好的广告位不仅不会强宾压主,而会为我们的网站锦上添花,起到画龙点睛的作用,因此设计好广告位也是开发过程中一大重要环节。
最近在做一个珠宝检测站的项目,其中管理页面就涉及到了广告位管理,之前项目中也有不少有广告位的,但都不是自己负责。其大致思路就是要从管理页面上传相应的图片,并且要保存到数据库,然后从所有上传过的图片中选择一张显示到网站首页。原理并不太难,但是鉴于性能问题,我们只需要数据库保存图片的路径即可。
重点是在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();
            }
        }

效果图

以上这些都是目前实现的功能,样式上和逻辑上都需要优化,简单的原理分享给大家,有不足之处请批评指正。

时间: 2024-09-22 17:44:59

MVC+WCF框架下广告位管理——文件上传的相关文章

新人求助!C#如何实现winform C/S架构下 局域网内文件上传下载

问题描述 C#怎么实现winformC/S架构下局域网内文件上传下载啊,局域网内一台电脑用作服务器,其余电脑用作客户端,如何实现啊,各位大神帮忙啊 解决方案 解决方案二:最简单的是使用ftp协议,服务器端不用写,用iis配置下,客户端用ftpclienthttp://blog.csdn.net/yafzhp/article/details/5896643解决方案三:用FTP下载协议可以使用winfrom做解决方案四:谢谢各位,先研究研究解决方案五:http上传下载也很方便解决方案六:FTP服务器

link环境下如何根据文件上传时间计算文件有效期,使用codefirst技术制作《网盘软件》

问题描述 link环境下如何根据文件上传时间计算文件有效期,使用codefirst技术制作<网盘软件> link环境下如何根据文件上传时间计算文件有效期,使用codefirst技术制作<网盘软件> 解决方案 你的有效期是固定的么? 可以用DateTime.Now.AddDays(7);,假设7天有效期. 解决方案二: 这个应该是在前台页面aspx中控制隐藏还是显示,或者在数据库中获得筛选好的文件列表给页面. 然后前台页面收到数据库,可以按照网格模式或者列表模式显示.

Android引用开源框架通过AsyncHttpClient实现文件上传

引用开源框架通过AsyncHttpClient进行文件上传,具体内容如下 一.步骤: 1.添加权限(访问网络权限和读写权限) 2.获取上传文件路径并判断是否为空 3.若不为空,创建异步请求对象 4.创建上传文件路径 5.执行post请求(指定url路径,封装上传参数,新建AsyncHttpResponseHandler方法) 二.查看参考文档 三.实例项目解析 运行效果如下: 在本地文件夹中查看是否获取到图片,如下图显示 重点代码:均有详细解析,请认真查看注释 1.在AndroidManifes

PHP MVC框架skymvc支持多文件上传_php技巧

 本文实例为大家分享了skymvc实现文件上传的具体代码,供大家参考,具体内容如下 1.代码upload.ctrl.php     <?php class uploadControl extends skymvc{ public function __construct(){ parent::__construct(); } public function onDefault(){ $this->smarty->display("upload/default.html"

MVC应用程序中如何管理(更新)上传的文件

实现上传文件功能,有时上传也会操作出错,能让用户有改正有机会,开发上传文件能有更新的功能. 文件上传时,如果是存储于应用程序某一目录的话,在更新时需要了解一些流程,先是删除旧文件,更新数据表相关信息,存储新文件. 本篇让你了解到MVC与jQuery的交互处理. 在数据库中,新建一个更新的存储过程: 找到并打开FileLibraryEntity.cs,添加一个vlid更新方法: 在ExerciseController.cs控制器中,创建一个更新Action:

引用开源框架通过AsyncHttpClient进行文件上传

一.步骤: 1.添加权限(访问网络权限和读写权限) 2.获取上传文件路径并判断是否为空 3.若不为空,创建异步请求对象 4.创建上传文件路径 5.执行post请求(指定url路径,封装上传参数,新建AsyncHttpResponseHandler方法)   二.查看参考文档   三.实例项目解析 运行效果如下:        在本地文件夹中查看是否获取到图片,如下图显示 重点代码:均有详细解析,请认真查看注释 1.在AndroidManifest.xml中添加权限     <uses-permi

Nginx下配置PHP文件上传大小限制

1. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini (1)post_max_size = 50M #PHP可接受的最大POST数据 (2)upload_max_filesize = 50M #文件上传允许的最大值 (3)max_execution_time = 300 #每个脚本的最大执行时间,秒钟(0则不限制,不建议设0)  2. 修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf (如果忘了配置文件的具

Asp.net MVC 1.0 RTM中实现文件上传

在我们开始之前,你需要知道一个form以post方式上传文件的方式,你将要增加一个特别的enctype attribute到form标签上,为了这个么,我们需要创建一个像这样的form标签: <% using (Html.BeginForm("Edit", "Person", FormMethod.Post, new { enctype = "multipart/form-data" })) {%> 然后我们只需要增加一个Type为&

java Struts2框架下实现文件上传功能_java

本文实例为大家分享了Struts2框架实现文件上传的方法,供大家参考,具体内容如下 struts2的配置过程 (1)在项目中加入jar包     (2)web.xml中filter(过滤器)的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xml