eWebSoft在线编辑器实例说明

 

代码实例说明: [顶部]

  在这里我们通过一个简单的新闻系统,对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/下。要使用此例子,请按如下步骤:

  1. 您必须把下载的压缩包eWebEditor目录设为虚拟目录,且虚拟目录名必须为eWebEditor,之所以有此要求,是因为此新闻例子默认设置的上传文件路径的要求。
  2. 设置完后访问以下地址:
    http://Localhost/eWebEditor/Example/NewsSystem/List.asp

实例文件结构说明: [顶部]

所有文件存放在Example/NewsSystem目录下,各文件的说明如下:

实例数据结构说明: [顶部]

此例子以ACCESS 2000作为数据库,数据库中只有一个表。新闻数据表:用于存入新闻的内容数据,如新闻标题、新闻内容、上传文件名及路径等。具体表结构如下:

新闻数据表:[NewsData]

字段名 类型 大小 主键 可空 说明
D_ID 自动编号 长整型   唯一识别ID
D_Title 文本 200     新闻标题
D_Content 备注       新闻内容
D_Picture 文本 50   新闻标题图片
D_OriginalFileName 备注     上传或远程获取前原文件名,多个以"|"分隔
D_SaveFileName 备注     上传后保存的文件名,多个以"|"分隔
D_SavePathFileName 备注     上传后保存的路径文件名(带路径),多个以"|"分隔

公用文件:Startup.asp [顶部][目录]

<%@ 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, "&", "&amp;")
  sTemp = Replace(sTemp, "<", "&lt;")
  sTemp = Replace(sTemp, ">", "&gt;")
  sTemp = Replace(sTemp, Chr(34), "&quot;")
  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, "&", "&amp;")
  sTemp = Replace(sTemp, "<", "&lt;")
  sTemp = Replace(sTemp, ">", "&gt;")
  sTemp = Replace(sTemp, Chr(34), "&quot;")
  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

%>

增加新闻:Add.asp [顶部][目录]

<!--#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

%>

增加新闻保存:AddSave.asp [顶部][目录]

<!--#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

%>

修改新闻:Modify.asp [顶部][目录]

<!--#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

%>

修改新闻保存: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

%>

新闻列表:List.asp [顶部][目录]

<!--#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>&nbsp;&nbsp;"
      ' 显示修改链接
      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

%>

删除新闻:Delete.asp [顶部][目录]

<!--#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

%>

显示新闻:Show.asp [顶部][目录]

<!--#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

%>
原文地址:https://www.cnblogs.com/fuyingke/p/587195.html