zoukankan      html  css  js  c++  java
  • 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

    %>
  • 相关阅读:
    课程总结1
    网站概要设计说明书
    数据库设计说明书
    团队项目之7天工作计划
    NABC
    敏捷开发综述
    二维数组最大子数组
    电梯调度
    输出整数数组中 最大的子数组的结果
    【自习任我行】第二阶段个人总结10
  • 原文地址:https://www.cnblogs.com/fuyingke/p/587195.html
Copyright © 2011-2022 走看看