修改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 WebAPI跨域调用问题的解决方法
- 使用ASP.NET AJAX Control Toolkit设置焦点
- asp.net – MVC4 – ContextDependentView – 这是什么意思
- ASP.NET MVC API 接口验证的示例代码
- 数组 – 如何在vbscript中实现具有可变大小的数组
- asp.net-mvc – Asp .Net Core – 无法安装Microsoft.AspNe
- 在asp.net中使用加密数据库联接字符串保证数据安全
- asp.net-mvc – DotNetOpenAuth在ASP.NET MVC中的OAuth
- asp.net编程实现删除文件夹及文件夹下文件的方法
- 如何使用ASP.NET MVC Web API OData链接到Razor中的OData集
- ASP.NET MVC4安全性,身份验证和授权
- 修改服务器配置 让asp.net文件后缀名随心所欲
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单
- asp.net-mvc – ASP.NET MVC会话超时,绝对还是滑
- 实体框架 – WebApi OData:$filter’any’或’a
- 如何在Asp.Net Mvc中进行Basecamp风格的账户?
- asp.net – coldfusion和.net上的单点登录
- asp.net-mvc – ASP.Net MVC:如何根据原始的Jso
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统
- asp.net – Orchard CMS是否支持移动呈现?