MVC+WCF框架下广告位管理——文件上传
广告位是站点中不可缺少的内容之中的一个。也是能直接给我们站点带来经济收益的内容之中的一个。
好的广告位不仅不会强宾压主,而会为我们的站点锦上添花。起到画龙点睛的作用。因此设计好广告位也是开发过程中一大重要环节。
近期在做一个珠宝检測站的项目,当中管理页面就涉及到了广告位管理,之前项目中也有不少有广告位的,但都不是自己负责。其大致思路就是要从管理页面上传对应的图片,而且要保存到数据库,然后从全部上传过的图片中选择一张显示到站点首页。原理并不太难,可是鉴于性能问题,我们仅仅须要数据库保存图片的路径就可以。
重点是在MVC+WCF这种框架之下。可能略微有点难度。经过网上博友的分享以及团队内交流,实现了最主要的上传和保存数据库功能。站点首页有五个广告位。因为广告位的位置以及尺寸不同,当然收费标准也是不一样的。哈哈~~我们初步设计每个广告位有单独的管理单元,我的详细实现是广告位的管理页面有五个Datagrad,每个表格用来显示数据库中保存的本类广告位的图片路径以及对应信息。
例如以下图:
表格中显示数据库全部数据,通过操作是否显示列的单选button来确定首先显示哪一张广告图片。(须要把单选button的name属性统一命名,整个表格的单选button设为一组)
这里我们重点说的就是文件上传,为什么仅仅在数据库保存路径而不直接保存图片呢?首先这是大多数开发者的做法,其次从一定程度上保存路径要比图片性能高一些。我实在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框架下广告位管理——文件上传的更多相关文章
- node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传
node.js下四种post提交数据的方式 今天说分享的是其中一种,就是上传文件. Express 4.0 以后,将功能原子化,高内聚,低耦合,独立出了很多中间件 今天主要分享文件上传 对于conne ...
- 自定义MVC框架之工具类-文件上传类
截止目前已经改造了3个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 该文件上传类功能如下: 1,允许定制上传的文件类型,文件mime信息,文 ...
- Spring 4 官方文档学习(十一)Web MVC 框架之multipart(文件上传)支持
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart 1.简 ...
- SSM框架下,使用ajax请求上传文件(doc\docx\excel\图片等)
1.准备工作 1.1.添加上传必要jar包 <dependency> <groupId>commons-io</groupId> <artifactId> ...
- PHP之ThinkPHP框架(验证码、文件上传、图片处理)
验证码 验证码是框架自带有的,比之前使用GD库简单方便许多,其实现原理基本相似,都是生成图片,保存验证码值到Session中,表单提交验证码,然后进行值的对比验证. 简单的显示: <form ...
- java框架篇---struts之文件上传和下载
Struts2文件上传 Struts 2框架提供了内置支持处理文件上传使用基于HTML表单的文件上传.上传一个文件时,它通常会被存储在一个临时目录中,他们应该由Action类进行处理或移动到一个永久的 ...
- WCF 使用Stream模式进行文件上传 --节选自Packt.Net.Framework.4.5.Expert.Programming.Cookbook
使用Stream上传文件 文件上传功能是web程序/服务上常用和必须的功能,WCF也不例外.在4.0版本之前,WCF仅仅提供了buffered模式上传文件.从4.0版本之后,WCF开始提供了Strea ...
- Spring Mvc 笔记二之异常和文件上传
spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常 1.局部异常对单个controller有效;(在controller类写一 ...
- 6月19 使用tp框架生成验证码及文件上传
ThinkPHP中自带能生成验证码的类:ThinkPHP/Library/Think/Verify.class.php 默认情况下,验证码的字体是随机使用 ThinkPHP/Library/Think ...
随机推荐
- Swift - UITableView展开缩放动画
Swift - UITableView展开缩放动画 效果 源码 https://github.com/YouXianMing/Swift-Animations // // HeaderViewTapA ...
- Mybatis对oracle数据库进行foreach批量插入操作
MySQL支持的语法 INSERT INTO `tableX` ( `a`, `b`, `c`, `d`, `e` ) VALUES <foreach collection ="lis ...
- 寂静之地百度云在线观看迅雷下载A Quiet Place高清BT下载
原名:A Quiet Place 地区:美国 语言:英语 / 美国手语 首播:2018-05-18(中国大陆) / 2018-03-09(西南偏南电影节) / 2018-04-06(美国) 电视台 ...
- bash 设置
export COLUMNS=500 $* 将所有命令行参数当做单个文本值包含 $@ 将所有命令行参数当做独立的文本值包含 $# 命令行参数数目 $? 最近使用的前端进程的退出状态码 $- 当前命令选 ...
- cat、tac、rev、nl命令
当日志文件log.log很长,但又要按内容从后往前查看时,可以使用如下命令: tac log.log | more cat 由第一行开始显示内容,并将所有内容输出 tac 从最后 ...
- 大话+图说:Java字节码指令——只为让你懂
前言 随着Java开发技术不断被推到新的高度,对于Java程序员来讲越来越需要具备对更深入的基础性技术的理解,比如Java字节码指令.不然,可能很难深入理解一些时下的新框架.新技术,盲目一味追新也会越 ...
- [转]InnoDB和MyISAM区别
From : http://blog.csdn.net/ghosc/article/details/5391544 MySQL作为当前最为流行的免费数据库服务引擎,已经风靡了很长一段时间,不过也许也有 ...
- Iocomp控件教程之Analog Display—模拟显示控件(优于EDIT控件)
Analog Display是简洁的显示控件.用于显示指定准确度和单位的模拟值(实数),能够将准确度设置为0.使显示结果为整数. 第一步:建立MFC对话框 第二步:插入AnalogDisplay控件 ...
- ConcurrentHashMap和HashMap的区别
(1)ConcurrentHashMap对整个桶数组进行了分段,而HashMap则没有 (2)ConcurrentHashMap在每一个分段上都用锁进行保护,从而让锁的粒度更精细一些,并发性能更好,而 ...
- SharePoint 列表权限控制
一提到sharepoint 我相信权限控制一定会是一个很重要的话题,尤其是对列表的权限控制,创建.修改.查看权限.其实网上这方面的资料已经很多了,尤其是以下2篇文章,后来索性把CodeArt_Perm ...