代码实例说明: [顶部]
在这里我们通过一个简单的新闻系统,对eWebEditor的使用进行详尽的实例代码说明。之所以把新闻系统作为eWebEditor功能使用的一个例子,原因在于新闻系统很具有代表性,基本上eWebEditor所具有的功能都能在此系统上给予体现。
- 此例子专门使用系统自带样式s_newssystem,此样式使用相对路径保存上传文件,所有上传的文件或远程获取的文件都存在文件夹下的NewsFile文件夹下,所有路径的格式都类似为"NewsFile/XXX.gif",此样式的远程获取模式为自动打开状态,即说明当提交表单时,编辑内容中的所有远程图片将自动上传到本地服务器。
- 在例子中文件中都有对每一步骤进行详细的注释,您可以根据实际使用的需要对某些操作步骤或功能进行增删改。
- 此例子以ACCESS 2000作为数据库保存新闻内容,数据库文件db.mdb中,表的每个字段都有注释,以便于您更好的了解eWebEditor的功能及使用方法。(附:系统数据库ewebeditor.mdb表字段也是有注释的,注释是我们的规定作法,希望您能更了解我们的系统)
- 此实例打包在 eWebEditor Version 2.7.5 压缩包中
在线演示地址:http://eWebEditor.webasp.net/eWebEditor/Example/NewsSystem/List.asp
实例安装说明: [顶部]
此实例打包在系统下载压缩包中,在目录Example/NewsSystem/下。要使用此例子,请按如下步骤:
- 您必须把下载的压缩包eWebEditor目录设为虚拟目录,且虚拟目录名必须为eWebEditor,之所以有此要求,是因为此新闻例子默认设置的上传文件路径的要求。
- 设置完后访问以下地址:
http://Localhost/eWebEditor/Example/NewsSystem/List.asp
实例文件结构说明: [顶部]
所有文件存放在Example/NewsSystem目录下,各文件的说明如下:
- DB.mdb:ACCESS数据库文件
- Startup.asp:每页公用包含文件,包括数据库连接,公用基本函数,头尾部内容
- Add.asp:增加新闻表单页
- AddSave.asp:增加新闻保存页
- Modify.asp:修改新闻表单页
- ModifySave.asp:修改新闻保存页
- List.asp:新闻列表页
- Delete.asp:删除新闻操作页
- Show.asp:显示新闻内容页
实例数据结构说明: [顶部]
此例子以ACCESS 2000作为数据库,数据库中只有一个表。新闻数据表:用于存入新闻的内容数据,如新闻标题、新闻内容、上传文件名及路径等。具体表结构如下:
新闻数据表:[NewsData]
字段名 | 类型 | 大小 | 主键 | 可空 | 说明 |
D_ID | 自动编号 | 长整型 | 是 | 唯一识别ID | |
D_Title | 文本 | 200 | 新闻标题 | ||
D_Content | 备注 | 新闻内容 | |||
D_Picture | 文本 | 50 | 是 | 新闻标题图片 | |
D_OriginalFileName | 备注 | 是 | 上传或远程获取前原文件名,多个以"|"分隔 | ||
D_SaveFileName | 备注 | 是 | 上传后保存的文件名,多个以"|"分隔 | ||
D_SavePathFileName | 备注 | 是 | 上传后保存的路径文件名(带路径),多个以"|"分隔 |
<%@ Language=VBScript CODEPAGE=936%>
<% Option Explicit %>
<%
' ============================================
' 常用全局变量
' ============================================
' 数据库对象
Dim oConn, oRs, sSql
' ============================================
' 初始数据处理
' ============================================
' 初始化数据库连接
Call DBConnBegin()
' ********************************************
' 以下为数据库相关函数
' ********************************************
' ============================================
' 初始化数据库连接对象
' 使用原则:最迟调用,最早释放
' ============================================
Sub DBConnBegin()
' 如果数据库对象已打开,不要再打开
If IsObject(oConn) = True Then Exit Sub
' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
Set oConn = Server.CreateObject("ADODB.Connection")
On Error Resume Next
' Access数据库
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db.mdb")
If Err.Number > 0 Then
' 显示错误信息,并且发送邮件通知管理员
'Call DBConnError(Err)
' 完全地退出正在运行的脚本
Response.End
End If
' 创建一个记录集
Set oRs = Server.CreateObject( "ADODB.Recordset" )
End Sub
' ============================================
' 释放数据库连接对象
' ============================================
Sub DBConnEnd()
On Error Resume Next
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
End Sub
' ********************************************
' 以下为常用函数
' ********************************************
' ============================================
' 错误返回处理
' ============================================
Sub GoError(str)
Call DBConnEnd()
Response.Write "<script language=javascript>alert('" & str & "\n\n系统将自动返回前一页面...');history.back();</script>"
Response.End
End Sub
' ============================================
' 得到安全字符串,在查询中或有必要强行替换的表单中使用
' ============================================
Function GetSafeStr(str)
GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
End Function
' ============================================
' 把字符串进行HTML解码,替换server.htmlencode
' 去除Html格式,用于显示输出
' ============================================
Function outHTML(str)
Dim sTemp
sTemp = str
outHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
sTemp = Replace(sTemp, Chr(10), "<br>")
outHTML = sTemp
End Function
' ============================================
' 去除Html格式,用于从数据库中取出值填入输入框时
' 注意:value="?"这边一定要用双引号
' ============================================
Function inHTML(str)
Dim sTemp
sTemp = str
inHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
inHTML = sTemp
End Function
' ===============================================
' 初始化下拉框
' s_FieldName : 返回的下拉框名
' a_Name : 定值名数组
' a_Value : 定值值数组
' v_InitValue : 初始值
' s_Sql : 从数据库中取值时,select name,value from table
' s_AllName : 空值的名称,如:"全部","所有","默认"
' ===============================================
Function InitSelect(s_FieldName, a_Name, a_Value, v_InitValue, s_Sql, s_AllName)
Dim i
InitSelect = "<select name='" & s_FieldName & "' size=1>"
If s_AllName <> "" Then
InitSelect = InitSelect & "<option value=''>" & s_AllName & "</option>"
End If
If s_Sql <> "" Then
oRs.Open s_Sql, oConn, 0, 1
Do While Not oRs.Eof
InitSelect = InitSelect & "<option value=""" & inHTML(oRs(1)) & """"
If oRs(1) = v_InitValue Then
InitSelect = InitSelect & " selected"
End If
InitSelect = InitSelect & ">" & outHTML(oRs(0)) & "</option>"
oRs.MoveNext
Loop
oRs.Close
Else
For i = 0 To UBound(a_Name)
InitSelect = InitSelect & "<option value=""" & inHTML(a_Value(i)) & """"
If a_Value(i) = v_InitValue Then
InitSelect = InitSelect & " selected"
End If
InitSelect = InitSelect & ">" & outHTML(a_Name(i)) & "</option>"
Next
End If
InitSelect = InitSelect & "</select>"
End Function
' ============================================
' 每页头部内容
' ============================================
Sub Header(str)
Response.Write "<HTML><HEAD><TITLE>eWebEditor在线编辑器 - 例子:新闻系统</TITLE><style>body,p,td,input {font-size:9pt}</style></HEAD><BODY>"
Response.Write "<p align=center><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a></p>"
Response.Write "<p align=center><b>" & str & "</b></p>"
End Sub
' ============================================
' 每页底部内容
' ============================================
Sub Footer()
Call DBConnEnd()
Response.Write "</BODY></HTML>"
End Sub
%>
<% Option Explicit %>
<%
' ============================================
' 常用全局变量
' ============================================
' 数据库对象
Dim oConn, oRs, sSql
' ============================================
' 初始数据处理
' ============================================
' 初始化数据库连接
Call DBConnBegin()
' ********************************************
' 以下为数据库相关函数
' ********************************************
' ============================================
' 初始化数据库连接对象
' 使用原则:最迟调用,最早释放
' ============================================
Sub DBConnBegin()
' 如果数据库对象已打开,不要再打开
If IsObject(oConn) = True Then Exit Sub
' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
Set oConn = Server.CreateObject("ADODB.Connection")
On Error Resume Next
' Access数据库
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db.mdb")
If Err.Number > 0 Then
' 显示错误信息,并且发送邮件通知管理员
'Call DBConnError(Err)
' 完全地退出正在运行的脚本
Response.End
End If
' 创建一个记录集
Set oRs = Server.CreateObject( "ADODB.Recordset" )
End Sub
' ============================================
' 释放数据库连接对象
' ============================================
Sub DBConnEnd()
On Error Resume Next
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
End Sub
' ********************************************
' 以下为常用函数
' ********************************************
' ============================================
' 错误返回处理
' ============================================
Sub GoError(str)
Call DBConnEnd()
Response.Write "<script language=javascript>alert('" & str & "\n\n系统将自动返回前一页面...');history.back();</script>"
Response.End
End Sub
' ============================================
' 得到安全字符串,在查询中或有必要强行替换的表单中使用
' ============================================
Function GetSafeStr(str)
GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
End Function
' ============================================
' 把字符串进行HTML解码,替换server.htmlencode
' 去除Html格式,用于显示输出
' ============================================
Function outHTML(str)
Dim sTemp
sTemp = str
outHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
sTemp = Replace(sTemp, Chr(10), "<br>")
outHTML = sTemp
End Function
' ============================================
' 去除Html格式,用于从数据库中取出值填入输入框时
' 注意:value="?"这边一定要用双引号
' ============================================
Function inHTML(str)
Dim sTemp
sTemp = str
inHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
inHTML = sTemp
End Function
' ===============================================
' 初始化下拉框
' s_FieldName : 返回的下拉框名
' a_Name : 定值名数组
' a_Value : 定值值数组
' v_InitValue : 初始值
' s_Sql : 从数据库中取值时,select name,value from table
' s_AllName : 空值的名称,如:"全部","所有","默认"
' ===============================================
Function InitSelect(s_FieldName, a_Name, a_Value, v_InitValue, s_Sql, s_AllName)
Dim i
InitSelect = "<select name='" & s_FieldName & "' size=1>"
If s_AllName <> "" Then
InitSelect = InitSelect & "<option value=''>" & s_AllName & "</option>"
End If
If s_Sql <> "" Then
oRs.Open s_Sql, oConn, 0, 1
Do While Not oRs.Eof
InitSelect = InitSelect & "<option value=""" & inHTML(oRs(1)) & """"
If oRs(1) = v_InitValue Then
InitSelect = InitSelect & " selected"
End If
InitSelect = InitSelect & ">" & outHTML(oRs(0)) & "</option>"
oRs.MoveNext
Loop
oRs.Close
Else
For i = 0 To UBound(a_Name)
InitSelect = InitSelect & "<option value=""" & inHTML(a_Value(i)) & """"
If a_Value(i) = v_InitValue Then
InitSelect = InitSelect & " selected"
End If
InitSelect = InitSelect & ">" & outHTML(a_Name(i)) & "</option>"
Next
End If
InitSelect = InitSelect & "</select>"
End Function
' ============================================
' 每页头部内容
' ============================================
Sub Header(str)
Response.Write "<HTML><HEAD><TITLE>eWebEditor在线编辑器 - 例子:新闻系统</TITLE><style>body,p,td,input {font-size:9pt}</style></HEAD><BODY>"
Response.Write "<p align=center><a href='list.asp'>新闻列表</a> | <a href='add.asp'>增加新闻</a></p>"
Response.Write "<p align=center><b>" & str & "</b></p>"
End Sub
' ============================================
' 每页底部内容
' ============================================
Sub Footer()
Call DBConnEnd()
Response.Write "</BODY></HTML>"
End Sub
%>
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:增加新闻
' 描述:提供一个新增表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择。
' ======================
Call Header("增加新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
%>
<Script Language=JavaScript>
// 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
function doChange(objText, objDrop){
if (!objDrop) return;
var str = objText.value;
var arr = str.split("|");
var nIndex = objDrop.selectedIndex;
objDrop.length=1;
for (var i=0; i<arr.length; i++){
objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
}
objDrop.selectedIndex = nIndex;
}
// 表单提交客户端检测
function doSubmit(){
if (document.myform.d_title.value==""){
alert("新闻标题不能为空!");
return false;
}
// getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
if (eWebEditor1.getHTML()==""){
alert("新闻内容不能为空!");
return false;
}
document.myform.submit();
}
</Script>
<form action="addsave.asp" method="post" name="myform">
<% '取源文件名 %>
<input type=hidden name=d_originalfilename>
<% '取保存的方件名,如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
<input type=hidden name=d_savefilename>
<% '取保存的文件名(带路径),使用带路径的填充下拉框 %>
<input type=hidden name=d_savepathfilename onchange="doChange(this,document.myform.d_picture)">
<table cellspacing=3 align=center>
<tr>
<td>新闻标题:</td>
<td><input type="text" name="d_title" value="" size="90"></td>
</tr>
<tr>
<td>标题图片:</td>
<td><select name="d_picture" size=1><option value=''>无</option></select> 当编辑区有插入图片时,将自动填充此下拉框</td>
</tr>
<tr>
<td>新闻内容:</td>
<td>
<%
' ewebeditor.asp文件调用的参数:
' id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
' style:编辑器的样式名称,可在eWebEditor的后台设置
' originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
' savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
' savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename
%>
<textarea name="d_content" style="display:none"></textarea>
<iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
</td>
</tr>
</table>
<p align=center><input type=button name=btnSubmit value=" 提 交 " onclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
</form>
<%
End Sub
%>
<%
' ======================
' 功能:增加新闻
' 描述:提供一个新增表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择。
' ======================
Call Header("增加新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
%>
<Script Language=JavaScript>
// 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
function doChange(objText, objDrop){
if (!objDrop) return;
var str = objText.value;
var arr = str.split("|");
var nIndex = objDrop.selectedIndex;
objDrop.length=1;
for (var i=0; i<arr.length; i++){
objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
}
objDrop.selectedIndex = nIndex;
}
// 表单提交客户端检测
function doSubmit(){
if (document.myform.d_title.value==""){
alert("新闻标题不能为空!");
return false;
}
// getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
if (eWebEditor1.getHTML()==""){
alert("新闻内容不能为空!");
return false;
}
document.myform.submit();
}
</Script>
<form action="addsave.asp" method="post" name="myform">
<% '取源文件名 %>
<input type=hidden name=d_originalfilename>
<% '取保存的方件名,如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
<input type=hidden name=d_savefilename>
<% '取保存的文件名(带路径),使用带路径的填充下拉框 %>
<input type=hidden name=d_savepathfilename onchange="doChange(this,document.myform.d_picture)">
<table cellspacing=3 align=center>
<tr>
<td>新闻标题:</td>
<td><input type="text" name="d_title" value="" size="90"></td>
</tr>
<tr>
<td>标题图片:</td>
<td><select name="d_picture" size=1><option value=''>无</option></select> 当编辑区有插入图片时,将自动填充此下拉框</td>
</tr>
<tr>
<td>新闻内容:</td>
<td>
<%
' ewebeditor.asp文件调用的参数:
' id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
' style:编辑器的样式名称,可在eWebEditor的后台设置
' originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
' savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
' savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename
%>
<textarea name="d_content" style="display:none"></textarea>
<iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
</td>
</tr>
</table>
<p align=center><input type=button name=btnSubmit value=" 提 交 " onclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
</form>
<%
End Sub
%>
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:增加新闻保存页
' 描述:对add.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================
Call Header("增加新闻保存")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
Dim i
' 取提交过来的数据
' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
Dim sTitle, sContent, sPicture
sTitle = Request.Form("d_title")
sPicture = Request.Form("d_picture")
' 开始:eWebEditor编辑区取值-----------------
sContent = ""
For i = 1 To Request.Form("d_content").Count
sContent = sContent & Request.Form("d_content")(i)
Next
' 结束:eWebEditor编辑区取值-----------------
' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
' 上传或远程获取前的原文件名,多个以"|"分隔
Dim sOriginalFileName
' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
Dim sSaveFileName
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
Dim sSavePathFileName
sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))
' 保存新闻内容,同时取出自增的新闻ID
Dim sNewsID
sSql = "SELECT * FROM NewsData WHERE D_ID=0"
oRs.Open sSql, oConn, 1, 3
oRs.AddNew
oRs("D_Title") = sTitle
oRs("D_Content") = sContent
oRs("D_Picture") = sPicture
oRs("D_OriginalFileName") = sOriginalFileName
oRs("D_SaveFileName") = sSaveFileName
oRs("D_SavePathFileName") = sSavePathFileName
oRs.Update
sNewsID = oRs("D_ID")
oRs.Close
' 输出成功保存信息
Response.Write "新闻(ID:" & sNewsID & ")增加保存成功!"
End Sub
%>
<%
' ======================
' 功能:增加新闻保存页
' 描述:对add.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================
Call Header("增加新闻保存")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
Dim i
' 取提交过来的数据
' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
Dim sTitle, sContent, sPicture
sTitle = Request.Form("d_title")
sPicture = Request.Form("d_picture")
' 开始:eWebEditor编辑区取值-----------------
sContent = ""
For i = 1 To Request.Form("d_content").Count
sContent = sContent & Request.Form("d_content")(i)
Next
' 结束:eWebEditor编辑区取值-----------------
' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
' 上传或远程获取前的原文件名,多个以"|"分隔
Dim sOriginalFileName
' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
Dim sSaveFileName
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
Dim sSavePathFileName
sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))
' 保存新闻内容,同时取出自增的新闻ID
Dim sNewsID
sSql = "SELECT * FROM NewsData WHERE D_ID=0"
oRs.Open sSql, oConn, 1, 3
oRs.AddNew
oRs("D_Title") = sTitle
oRs("D_Content") = sContent
oRs("D_Picture") = sPicture
oRs("D_OriginalFileName") = sOriginalFileName
oRs("D_SaveFileName") = sSaveFileName
oRs("D_SavePathFileName") = sSavePathFileName
oRs.Update
sNewsID = oRs("D_ID")
oRs.Close
' 输出成功保存信息
Response.Write "新闻(ID:" & sNewsID & ")增加保存成功!"
End Sub
%>
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:修改新闻
' 描述:提供一个修改表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择;
' 功能与新增相同,不同在于只是修改表单具有初始值。
' ======================
Call Header("修改新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从数据库中取初始值
Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sTitle = oRs("D_Title")
sContent = oRs("D_Content")
sPicture = oRs("D_Picture")
sOriginalFileName = oRs("D_OriginalFileName")
sSaveFileName = oRs("D_SaveFileName")
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 把带"|"的字符串转为数组,用于初始下拉框表单
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, "|")
' 根据新闻内容中相关上传文件为数据,初始下拉框表单
' 函数InitSelect,根据数组值及初始值返回下拉框输出字串,具体请见startup.asp文件中函数的说明部分
Dim sOptionSavePath
sOptionSavePath = InitSelect("d_picture", aSavePathFileName, aSavePathFileName, sPicture, "", "无")
%>
<Script Language=JavaScript>
// 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
function doChange(objText, objDrop){
if (!objDrop) return;
var str = objText.value;
var arr = str.split("|");
var nIndex = objDrop.selectedIndex;
objDrop.length=1;
for (var i=0; i<arr.length; i++){
objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
}
objDrop.selectedIndex = nIndex;
}
// 表单提交客户端检测
function doSubmit(){
if (document.myform.d_title.value==""){
alert("新闻标题不能为空!");
return false;
}
// getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
if (eWebEditor1.getHTML()==""){
alert("新闻内容不能为空!");
return false;
}
document.myform.submit();
}
</Script>
<form action="modifysave.asp?id=<%=sNewsID%>" method="post" name="myform">
<% '取源文件名 %>
<input type=hidden name=d_originalfilename value="<%=sOriginalFileName%>">
<% '取保存的方件名(带路径),如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
<input type=hidden name=d_savefilename value="<%=sSaveFileName%>">
<% '取保存的文件名,使用带路径的填充下拉框 %>
<input type=hidden name=d_savepathfilename onchange="doChange(this,document.myform.d_picture)" value="<%=sSavePathFileName%>">
<table cellspacing=3 align=center>
<tr>
<td>新闻标题:</td>
<% ' 函数inHTML:去除Html格式,用于从数据库中取出值填入输入框时,具体请见startup.asp文件中函数的说明 %>
<td><input type="text" name="d_title" value="<%=inHTML(sTitle)%>" size="90"></td>
</tr>
<tr>
<td>标题图片:</td>
<td><%=sOptionSavePath%> 当编辑区有插入图片时,将自动填充此下拉框</td>
</tr>
<tr>
<td>新闻内容:</td>
<td>
<%
' ewebeditor.asp文件调用的参数:
' id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
' style:编辑器的样式名称,可在eWebEditor的后台设置
' originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
' savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
' savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename
' 请一定要用Server.HtmlEncode()函数对内容进行转换,否则将有可以出现某些内容出了编辑区的情况
%>
<textarea name="d_content" style="display:none"><%=Server.HtmlEncode(sContent)%></textarea>
<iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
</td>
</tr>
</table>
<p align=center><input type=button name=btnSubmit value=" 提 交 " onclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
</form>
<%
End Sub
%>
<%
' ======================
' 功能:修改新闻
' 描述:提供一个修改表单,包括新闻标题和新闻内容,新闻内容使用eWebEditor进行编辑;
' 同时接收上传文件,以便删除新闻时,同时删除上传文件;
' 并由编辑区中上传的文件,提供标题新闻的图片选择;
' 功能与新增相同,不同在于只是修改表单具有初始值。
' ======================
Call Header("修改新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从数据库中取初始值
Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sTitle = oRs("D_Title")
sContent = oRs("D_Content")
sPicture = oRs("D_Picture")
sOriginalFileName = oRs("D_OriginalFileName")
sSaveFileName = oRs("D_SaveFileName")
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 把带"|"的字符串转为数组,用于初始下拉框表单
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, "|")
' 根据新闻内容中相关上传文件为数据,初始下拉框表单
' 函数InitSelect,根据数组值及初始值返回下拉框输出字串,具体请见startup.asp文件中函数的说明部分
Dim sOptionSavePath
sOptionSavePath = InitSelect("d_picture", aSavePathFileName, aSavePathFileName, sPicture, "", "无")
%>
<Script Language=JavaScript>
// 当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数
function doChange(objText, objDrop){
if (!objDrop) return;
var str = objText.value;
var arr = str.split("|");
var nIndex = objDrop.selectedIndex;
objDrop.length=1;
for (var i=0; i<arr.length; i++){
objDrop.options[objDrop.length] = new Option(arr[i], arr[i]);
}
objDrop.selectedIndex = nIndex;
}
// 表单提交客户端检测
function doSubmit(){
if (document.myform.d_title.value==""){
alert("新闻标题不能为空!");
return false;
}
// getHTML()为eWebEditor自带的接口函数,功能为取编辑区的内容
if (eWebEditor1.getHTML()==""){
alert("新闻内容不能为空!");
return false;
}
document.myform.submit();
}
</Script>
<form action="modifysave.asp?id=<%=sNewsID%>" method="post" name="myform">
<% '取源文件名 %>
<input type=hidden name=d_originalfilename value="<%=sOriginalFileName%>">
<% '取保存的方件名(带路径),如果不要带路径的填充下拉框,可以在下面的表单项加入onchange事件 %>
<input type=hidden name=d_savefilename value="<%=sSaveFileName%>">
<% '取保存的文件名,使用带路径的填充下拉框 %>
<input type=hidden name=d_savepathfilename onchange="doChange(this,document.myform.d_picture)" value="<%=sSavePathFileName%>">
<table cellspacing=3 align=center>
<tr>
<td>新闻标题:</td>
<% ' 函数inHTML:去除Html格式,用于从数据库中取出值填入输入框时,具体请见startup.asp文件中函数的说明 %>
<td><input type="text" name="d_title" value="<%=inHTML(sTitle)%>" size="90"></td>
</tr>
<tr>
<td>标题图片:</td>
<td><%=sOptionSavePath%> 当编辑区有插入图片时,将自动填充此下拉框</td>
</tr>
<tr>
<td>新闻内容:</td>
<td>
<%
' ewebeditor.asp文件调用的参数:
' id:下面表单项textarea的名称,在此表单中是d_content,注意大小写
' style:编辑器的样式名称,可在eWebEditor的后台设置
' originalfilename:用于获取源文件名的表单项名,在此表单中是d_originalfilename
' savefilename:用于获取保存文件名的表单项名,在此表单中是d_savefilename
' savepathfilename:用于获取保存带路径文件名的表单项名,在此表单中是d_savepathfilename
' 请一定要用Server.HtmlEncode()函数对内容进行转换,否则将有可以出现某些内容出了编辑区的情况
%>
<textarea name="d_content" style="display:none"><%=Server.HtmlEncode(sContent)%></textarea>
<iframe ID="eWebEditor1" src="../../ewebeditor.asp?id=d_content &style=s_newssystem &originalfilename=d_originalfilename &savefilename=d_savefilename &savepathfilename=d_savepathfilename" frameborder="0" scrolling="no" width="550" HEIGHT="350"></iframe>
</td>
</tr>
</table>
<p align=center><input type=button name=btnSubmit value=" 提 交 " onclick="doSubmit()"> <input type=reset name=btnReset value=" 重 填 "></p>
</form>
<%
End Sub
%>
修改新闻保存:ModifySave.asp [顶部][目录]
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:修改新闻保存页
' 描述:对modify.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================
Call Header("修改新闻保存")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
Dim i
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 取提交过来的数据
' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
Dim sTitle, sContent, sPicture
sTitle = Request.Form("d_title")
sPicture = Request.Form("d_picture")
' 开始:eWebEditor编辑区取值-----------------
sContent = ""
For i = 1 To Request.Form("d_content").Count
sContent = sContent & Request.Form("d_content")(i)
Next
' 结束:eWebEditor编辑区取值-----------------
' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
' 上传或远程获取前的原文件名,多个以"|"分隔
Dim sOriginalFileName
' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
Dim sSaveFileName
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
Dim sSavePathFileName
sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))
' 修改指定新闻内容
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 1, 3
If Not oRs.Eof Then
oRs("D_Title") = sTitle
oRs("D_Content") = sContent
oRs("D_Picture") = sPicture
oRs("D_OriginalFileName") = sOriginalFileName
oRs("D_SaveFileName") = sSaveFileName
oRs("D_SavePathFileName") = sSavePathFileName
oRs.Update
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 输出成功保存信息
Response.Write "新闻(ID:" & sNewsID & ")修改保存成功!"
End Sub
%>
<%
' ======================
' 功能:修改新闻保存页
' 描述:对modify.asp文件提交过来的表单数据进行保存操作,有保存新闻标题,新闻内容,新闻标题图片;
' 同时保存所有此篇新闻所有相关的上传或远程获取的文件信息,有源文件名,保存文件名,保存路径文件名。
' ======================
Call Header("修改新闻保存")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
Dim i
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 取提交过来的数据
' 注意取新闻内容的方法,因为对大表单的自动处理,一定要使用循环,否则大于100K的内容将取不到,单个表单项的限制为102399字节(100K左右)
Dim sTitle, sContent, sPicture
sTitle = Request.Form("d_title")
sPicture = Request.Form("d_picture")
' 开始:eWebEditor编辑区取值-----------------
sContent = ""
For i = 1 To Request.Form("d_content").Count
sContent = sContent & Request.Form("d_content")(i)
Next
' 结束:eWebEditor编辑区取值-----------------
' 以下为所有通过编辑器上传的所有文件相关信息,包括编辑区手动上传的和自动远程上传的
' GetSafeStr函数为过滤一些特殊字符,防止有些人恶意的破坏此演示程序
' 上传或远程获取前的原文件名,多个以"|"分隔
Dim sOriginalFileName
' 上传后保存到本地服务器的文件名(不带路径),多个以"|"分隔
Dim sSaveFileName
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
Dim sSavePathFileName
sOriginalFileName = GetSafeStr(Request.Form("d_originalfilename"))
sSaveFileName = GetSafeStr(Request.Form("d_savefilename"))
sSavePathFileName = GetSafeStr(Request.Form("d_savepathfilename"))
' 修改指定新闻内容
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 1, 3
If Not oRs.Eof Then
oRs("D_Title") = sTitle
oRs("D_Content") = sContent
oRs("D_Picture") = sPicture
oRs("D_OriginalFileName") = sOriginalFileName
oRs("D_SaveFileName") = sSaveFileName
oRs("D_SavePathFileName") = sSavePathFileName
oRs.Update
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 输出成功保存信息
Response.Write "新闻(ID:" & sNewsID & ")修改保存成功!"
End Sub
%>
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:新闻列表
' 描述:本页代码没有使用到eWebEditor相关的内容,只提供新闻列表,及显示、修改、删除新闻页的链接。
' ======================
Call Header("新闻列表")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 从新闻库中取出所有新闻,按ID倒排序
sSql = "SELECT * FROM NewsData ORDER BY D_ID DESC"
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
Do While Not oRs.Eof
Response.Write "<li>"
' 是否有新闻标题图片,如有则输出显示
If oRs("D_Picture") <> "" Then
Response.Write "<img border=0 src='" & oRs("D_Picture") & "'>"
End If
' 显示标题
' 函数outHTML:去除Html格式,用于显示输出,具体请见startup.asp文件中的说明
Response.Write "<a href='show.asp?id=" & oRs("d_id") & "'>" & outHTML(oRs("d_title")) & "</a> "
' 显示修改链接
Response.Write "[<a href='modify.asp?id=" & oRs("d_id") & "'>修改</a>]"
' 显示删除链接
Response.Write "[<a href='delete.asp?id=" & oRs("d_id") & "'>删除</a>]"
oRs.MoveNext
Loop
Else
Response.Write "现在数据库中还没有新闻!"
End If
oRs.Close
End Sub
%>
<%
' ======================
' 功能:新闻列表
' 描述:本页代码没有使用到eWebEditor相关的内容,只提供新闻列表,及显示、修改、删除新闻页的链接。
' ======================
Call Header("新闻列表")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 从新闻库中取出所有新闻,按ID倒排序
sSql = "SELECT * FROM NewsData ORDER BY D_ID DESC"
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
Do While Not oRs.Eof
Response.Write "<li>"
' 是否有新闻标题图片,如有则输出显示
If oRs("D_Picture") <> "" Then
Response.Write "<img border=0 src='" & oRs("D_Picture") & "'>"
End If
' 显示标题
' 函数outHTML:去除Html格式,用于显示输出,具体请见startup.asp文件中的说明
Response.Write "<a href='show.asp?id=" & oRs("d_id") & "'>" & outHTML(oRs("d_title")) & "</a> "
' 显示修改链接
Response.Write "[<a href='modify.asp?id=" & oRs("d_id") & "'>修改</a>]"
' 显示删除链接
Response.Write "[<a href='delete.asp?id=" & oRs("d_id") & "'>删除</a>]"
oRs.MoveNext
Loop
Else
Response.Write "现在数据库中还没有新闻!"
End If
oRs.Close
End Sub
%>
<!--#include file = "Startup.asp"-->
<%
' ======================
' 功能:删除新闻
' 描述:新闻删除后,页面转向新闻列表页。
' 删除新闻的同时,删除此新闻相关的上传文件。
' ======================
Call Header("删除新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 取参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从新闻数据表中取出相关的上传文件
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
' 删除文件,要取带路径的文件名才可以,并且只要这个就可以了,原来存的原文件名或不带路径的保存文件名可用于其它地方使用
Dim sSavePathFileName
sSql = "SELECT D_SavePathFileName FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 把带"|"的字符串转为数组
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, "|")
' 删除新闻相关的文件,从文件夹中
Dim i
For i = 0 To UBound(aSavePathFileName)
' 按路径文件名删除文件
Call DoDelFile(aSavePathFileName(i))
Next
' 删除新闻
sSql = "DELETE FROM NewsData WHERE D_ID=" & sNewsID
oConn.Execute sSql
' 3秒转向新闻列表页
response.write "<p align=center>新闻删除成功,3秒后自动返回新闻列表页!<script>window.setTimeout(""location.href='list.asp'"",3000);</script></p>"
End Sub
' 删除指定的文件
Sub DoDelFile(sPathFile)
On Error Resume Next
Dim oFSO
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFile(Server.MapPath(sPathFile))
Set oFSO = Nothing
End Sub
%>
<%
' ======================
' 功能:删除新闻
' 描述:新闻删除后,页面转向新闻列表页。
' 删除新闻的同时,删除此新闻相关的上传文件。
' ======================
Call Header("删除新闻")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 取参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从新闻数据表中取出相关的上传文件
' 上传后保存到本地服务器的路径文件名,多个以"|"分隔
' 删除文件,要取带路径的文件名才可以,并且只要这个就可以了,原来存的原文件名或不带路径的保存文件名可用于其它地方使用
Dim sSavePathFileName
sSql = "SELECT D_SavePathFileName FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 把带"|"的字符串转为数组
Dim aSavePathFileName
aSavePathFileName = Split(sSavePathFileName, "|")
' 删除新闻相关的文件,从文件夹中
Dim i
For i = 0 To UBound(aSavePathFileName)
' 按路径文件名删除文件
Call DoDelFile(aSavePathFileName(i))
Next
' 删除新闻
sSql = "DELETE FROM NewsData WHERE D_ID=" & sNewsID
oConn.Execute sSql
' 3秒转向新闻列表页
response.write "<p align=center>新闻删除成功,3秒后自动返回新闻列表页!<script>window.setTimeout(""location.href='list.asp'"",3000);</script></p>"
End Sub
' 删除指定的文件
Sub DoDelFile(sPathFile)
On Error Resume Next
Dim oFSO
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFile(Server.MapPath(sPathFile))
Set oFSO = Nothing
End Sub
%>
<!--#include file = "Startup.asp"-->
<!--#include file = "../../Include/DeCode.asp"-->
<%
' ======================
' 功能:显示新闻
' 描述:显示编辑的内容页,此页注意一下DeCode接口函数的调用。
' ======================
Call Header("显示新闻内容")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从数据库中取初始值
Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sTitle = oRs("D_Title")
sContent = oRs("D_Content")
sPicture = oRs("D_Picture")
sOriginalFileName = oRs("D_OriginalFileName")
sSaveFileName = oRs("D_SaveFileName")
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 禁用某些标签,如出于安全考虑的Script标签,等
' 要使用此功能需要先包含"Include/DeCode.asp"文件。
' 此例只过滤SCRIPT标签,即意味着内容中的客户端脚本不会生效,您可根据实际的需要加入其它标签。
' 当前支持过滤的标签,可以查看DeCode.asp文件中的说明。
sContent = eWebEditor_DeCode(sContent, "SCRIPT")
' 输出新闻
Response.Write "<table border=0 cellpadding=5 width='90%' align=center>" & _
"<tr><td align=center><b>" & sTitle & "</b></td></tr>" & _
"<tr><td>" & sContent & "</td></tr>" & _
"</table>"
' 输出相关文件信息
Response.Write "<p><b>此新闻的相关上传文件信息如下:</b></p>"
' 把带"|"的字符串转为数组,用于列出显示
Dim aOriginalFileName, aSaveFileName, aSavePathFileName
aOriginalFileName = Split(sOriginalFileName, "|")
aSaveFileName = Split(sSaveFileName, "|")
aSavePathFileName = Split(sSavePathFileName, "|")
Response.Write "<table border=1 cellpadding=3 cellspacing=0>" & _
"<tr>" & _
"<td>序号</td>" & _
"<td>原文件名(接口:d_originalfilename)</td>" & _
"<td>保存文件名(接口:d_savefilename)</td>" & _
"<td>保存路径文件名(接口:d_savepathfilename)</td>" & _
"</tr>"
Dim i
For i = 0 To UBound(aOriginalFileName)
Response.Write "<tr>" & _
"<td>" & CStr(i + 1) & "</td>" & _
"<td>" & aOriginalFileName(i) & "</td>" & _
"<td>" & aSaveFileName(i) & "</td>" & _
"<td>" & aSavePathFileName(i) & "</td>" & _
"</tr>"
Next
Response.Write "</table>"
End Sub
%>
<!--#include file = "../../Include/DeCode.asp"-->
<%
' ======================
' 功能:显示新闻
' 描述:显示编辑的内容页,此页注意一下DeCode接口函数的调用。
' ======================
Call Header("显示新闻内容")
Call Content()
Call Footer()
' 本页内容区
Sub Content()
' 传入参数:新闻ID
Dim sNewsID
sNewsID = Trim(Request("id"))
' 新闻ID有效性验证,防止有些人恶意的破坏此演示程序
If IsNumeric(sNewsID) = False Then
GoError "请通过页面上的链接进行操作,不要试图破坏此演示系统。"
End If
' 从数据库中取初始值
Dim sTitle, sContent, sPicture, sOriginalFileName, sSaveFileName, sSavePathFileName
sSql = "SELECT * FROM NewsData WHERE D_ID=" & sNewsID
oRs.Open sSql, oConn, 0, 1
If Not oRs.Eof Then
sTitle = oRs("D_Title")
sContent = oRs("D_Content")
sPicture = oRs("D_Picture")
sOriginalFileName = oRs("D_OriginalFileName")
sSaveFileName = oRs("D_SaveFileName")
sSavePathFileName = oRs("D_SavePathFileName")
Else
GoError "无效的新闻ID,请点页面上的链接进行操作!"
End If
oRs.Close
' 禁用某些标签,如出于安全考虑的Script标签,等
' 要使用此功能需要先包含"Include/DeCode.asp"文件。
' 此例只过滤SCRIPT标签,即意味着内容中的客户端脚本不会生效,您可根据实际的需要加入其它标签。
' 当前支持过滤的标签,可以查看DeCode.asp文件中的说明。
sContent = eWebEditor_DeCode(sContent, "SCRIPT")
' 输出新闻
Response.Write "<table border=0 cellpadding=5 width='90%' align=center>" & _
"<tr><td align=center><b>" & sTitle & "</b></td></tr>" & _
"<tr><td>" & sContent & "</td></tr>" & _
"</table>"
' 输出相关文件信息
Response.Write "<p><b>此新闻的相关上传文件信息如下:</b></p>"
' 把带"|"的字符串转为数组,用于列出显示
Dim aOriginalFileName, aSaveFileName, aSavePathFileName
aOriginalFileName = Split(sOriginalFileName, "|")
aSaveFileName = Split(sSaveFileName, "|")
aSavePathFileName = Split(sSavePathFileName, "|")
Response.Write "<table border=1 cellpadding=3 cellspacing=0>" & _
"<tr>" & _
"<td>序号</td>" & _
"<td>原文件名(接口:d_originalfilename)</td>" & _
"<td>保存文件名(接口:d_savefilename)</td>" & _
"<td>保存路径文件名(接口:d_savepathfilename)</td>" & _
"</tr>"
Dim i
For i = 0 To UBound(aOriginalFileName)
Response.Write "<tr>" & _
"<td>" & CStr(i + 1) & "</td>" & _
"<td>" & aOriginalFileName(i) & "</td>" & _
"<td>" & aSaveFileName(i) & "</td>" & _
"<td>" & aSavePathFileName(i) & "</td>" & _
"</tr>"
Next
Response.Write "</table>"
End Sub
%>