修改FCKEditor实现将图片、文件等保存到数据库
FCKEditor是开源的富文本编辑器,其免费、跨浏览器跨平台的特点使得其在项目中得到了广泛的应用。但是FCKEditor的附件(文件、图片、Flash等)是上传保存到Web服务器的,在只有一台Web服务器的情况下没有什么太大的问题,但是如果我们的系统有多个Web服务器实现NLB(网络负载均衡),那么用户将附件上传到其中一台Web服务器上保存,其他用户在访问另外一台Web服务器时将无法读取文件。对于这种多Web服务器实现NLB的情况,一般来说,我知道的有4种解决方案: 1,将附件保存到SQL Server服务器上,用户访问任何一台Web服务器都是通过连接到数据库,从数据库中读取数据并传输到用户客户端。 2,将附件保存到共享存储上,也就是说让每台Web服务器都有访问共享存储的权限,用户上传附件时直接上传到共享磁盘,其他Web服务器访问时也是直接读取共享磁盘上的附件。 3,建立一台专门的存储服务器,分配一个专门的域名(比如Files.xxx.com)负责对所有附件进行集中管理。这个方案比较好,在大型和集中的应用中可以使用,不过成本也比较高。 4,在多台Web服务器上开启文件同步的服务,用户上传了附件到一台服务器上,通过文件同步服务将所有新上传的附件同步其他所有Web服务器上,这样就会在每台服务器上保存一个附件的副本,及其浪费空间,而且文件的同步还存在延时和失败的情况。 一般来说,比较简单而且易于管理的是第一种方案,直接将附件存储到数据库中,所有Web服务器都访问数据库来读写文件,而且SQL Server 2008中提供了专门的FILESTREAM功能,用于对附件数据库进行优化和管理。 但是FCKEditor没有提供将文件上传到数据库中保存的配置方法,幸好他是开源的,所以我们可以修改其源代码实现将附件保存到数据库中,经过几天的努力我终于将FCKEditor的修改完成了,下面说一说具体的修改思想和方法,并给出修改后的FCKEditor。 1,首先我们要建立文件数据库用于保存上传的附件,数据库中有2个表,一个文件夹表和一个附件表,具体SQL脚本是: [dbo].[Folders]( [FolderPath] [nvarchar](500) ,() (PAD_INDEX = ,STATISTICS_NORECOMPUTE = ,IGNORE_DUP_KEY = ,ALLOW_ROW_LOCKS = ,ALLOW_PAGE_LOCKS = ) [],() (PAD_INDEX = ,ALLOW_PAGE_LOCKS = ) [] |
- asp.net – Web Api参数始终为null
- asp.net – Visual Studio 2010图表控件:使Y轴成为整数值,
- asp.net – 在SQL Server中将日期转换为刻度
- asp.net neatUpload 支持大文件上传组件
- .net – RESTful WCF的裸最低配置
- asp.net-mvc-4 – MVC4 RC脚本捆绑很慢
- asp.net-mvc – 使用Entity FrameWork保存更改/更新数据集中
- 在ASP.NET RadioButtonList ListItem上设置CSS类
- asp.net – 如何在selectindexchanged下拉列表后避免页面刷
- asp.net – 我想列出我的下拉列表中的所有国家/地区,我在哪
- 部署 – kestrel-hellomvc.service:步骤USER产生
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- asp.net代码中修改web.config节点的具体方法
- 密码由6-12位数字或字母组成,密码哈希加密
- asp.net – CookieContainer和Response.Cookies集
- asp.net – 在web.config文件中设置重定向
- ASP.NET -- WebForm -- 页面生命周期事件
- Jquery 组合form元素为json格式,asp.net反序列化
- asp.net-mvc – SelectListItem中的Selected属性
- 什么是ASP.NET WebForms相当于ASP.NET MVC的View