日期:2014-05-17  浏览次数:20491 次

做网站需要保存文章格式到数据库,你是用什么方法?
方法一:
1.在web.config中加入如下配置

<httpRuntime requestValidationMode="2.0" />


2.在页面中的page节点中加入ValidateRequest="false",如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BlogAdd.aspx.cs" Inherits="MessageBoard.BlogAdd" ValidateRequest="false" %>
(这种做法有安全隐患,不过我网上查了大多数都是这么解决)


方法二:
//以二进制格式保存。保存的代码为  
02.MemoryStream ms = new MemoryStream();   
03.rtbContent.SaveFile(ms, RichTextBoxStreamType.RichText);   
04.byte[] bt=ms.ToArray();   
05.//将bt保存到数据库   
06.//读取的代码为:   
07.byte[] bt = (byte[])SqlHelper.ExecuteScalar(sqlStr, null);   
08.MemoryStream ms = new MemoryStream(bt, false);   
09.rtbContent.LoadFile(ms, RichTextBoxStreamType.RichText);   
10.//在SQLServer中对应的数据类型为:image  

方法三:替换字符
用这个函数可以解决问题
function displaystr(str)
 str=RTrim(str)
 if not isnull(str) then
 str = replace(str, ">", "&gt;")
 str = replace(str, "<", "&lt;")
 str = Replace(str, CHR(32), " ")
 str = Replace(str, CHR(9), " ")
 str = Replace(str, " ", "&nbsp;")
 str = Replace(str, CHR(34), "&quot;")
 str = Replace(str, CHR(39), "&#39;")
 str = Replace(str, vbCr, "")
 str = Replace(str, vbLf, "<BR>")
 str = Replace(str, vbCrLf, "<BR>")
 displaystr = str
 else
 displaystr="-"
 end if  
 end function 

还有最后一种:是“默认禁止,显示允许”。这种内容有点长,就不贴出来了。
如果是你,你用的是那种?

------解决方案--------------------
二进制文件。
------解决方案--------------------
看你的需求,如果你的服务器只是“网盘”,自然以文件本来的格式保存最好,不会丢失任何信息。
但是如果你的网站有对文档数据处理的需要,比如全文检索,格式化文本并且在线发布,允许用户在线编辑等等,还是进行预处理并且以服务器能处理的统一格式(文本、html、ubb或者rich文本等)保存比较好。
------解决方案--------------------
CkEiditor 文本编辑器