开发者社区> 邵鸿鑫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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();
            }
        }

效果图
这里写图片描述

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
12 0
linux 修改文件管理器中 文件夹名称
linux 修改文件管理器中 文件夹名称
996 0
【快速入门ORM框架之Dapper】大牛勿进系列
原文:【快速入门ORM框架之Dapper】大牛勿进系列 前言:dapper是什么?Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。
1116 0
获取JVM的dump文件
获取JVM的dump文件的两种方式 1. JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX:HeapDumpPath=/home/liuke/jvmlogs/   2.
911 0
三大框架中模糊查询代码
js获取查询条件,并去后台查询 function queryByName(){                    //获取查询条件的用户名                    var queryName=$("#queryName").
718 0
javac -encoding支持的编码
ASCII     American   Standard   Code   for   Information   Interchange     Cp1252     Windows   Latin-1     ISO8859_1     ISO   8859-1,   Latin   alphabet   No.
720 0
+关注
邵鸿鑫
java相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题)
立即下载
蚂蚁金服大数据开放式创新实践
立即下载
低代码开发师(初级)实战教程
立即下载