ASP  在线文本编辑器
在上个练习中我们制作了一个资源管理器,运行后可对程序所在目录中的文件和文件夹进行浏览、新建和删除操作。本次练习以此为基础进行扩展,完成一个简单的在线文本编辑器。即在资源管理器的文件列表中单击链接,然后在进入的页面中对文本中的内容进行修改,最后并保存。
按照下列步骤来完成最终实例:
在线代码运行器
(1)打开“资源管理器”实例中的Default.asp文件,到显示文件名称的代码“<%=li.name%>”,将其修改为如下的代码:
<a href="Edit.asp?file=<%=WholeFile%>"><%=li.Name%></a>
(2)保存Default.asp文件,上一步为文件名称添加了超链接,单击之后将转向Edit.asp文件并指定file为要编辑的文本名称。在同一目录中以Edit.asp为命名创建一个文件。
(3)作为编辑器,显示正在编辑的文件名称是很必要的。如下所示为在Edit.asp文件中接收
Default.asp传递file值显示文件名称的代码,其中还提供了一个“关闭窗口”链接。
      <table width="100%" border="0" cellpadding="0" cellspacing="0" id="ArtTitle">
          <tr>
            <td width="26"><img src="images/005.gif" width="18" height="18" /></td>
            <td width="507" align="left" class="STYLE3">文件名称:   
            <%
                  sFile=request.querystring("File")
                  Response.Write(sFile)
              %></td>
            <td width="144" align="left" ><a href="javascript:window.close()" class="STYLE3" >关闭窗口</a></td>
            </tr>
        </table>
(4)除了显示文件名,另一个重要的功能就是显示文件中的内容。这里要注意,显示内容的位置同时也是编辑文件所在位置,这就要求内容是可读写的。如下所示是定义好的表单代码,它包含一个多行文本域即可以显示也可以编辑文件内容。
        <form action='Edit.asp?file=<%=sfile%>&action=save' id="FORM1" method="post" name="FORM1">
          <textarea name=FileContent cols='110' rows='10' >
          <%Response.Write Server.HTMLEncode(ts.ReadAll)  '读出文件中的所有内容%>
          </textarea>
          <br /><input id="submit1" name="submit1" type="submit" value="保 存">
        </form>
(5)在表单中有一“保存”按钮,单击它将触发表单的提交事件,将多行文本域中的内容提交到Edit.asp文件处理,该文件也是它自身,因此也可称为自提交。提交的方式为post,这就要求在处理时使用Request.Form来获取内容。如下所示为完成这些操作所需的ASP代码:
    <%
        Set fso = Server.CreateObject("Scripting.FileSystemObject")   
            action=request.querystring("action")
        Set ts = fso.OpenTextFile (Server.MapPath (sFile) , 1)
        '如果是保存
        If Action="save" then
                Set ts = fso.CreateTextFile (Server.MapPath (sFile), 1)
                ts.Write Request.Form("FileContent")
                Set ts = fso.OpenTextFile (Server.MapPath (sFile) , 1)
                PutMsg( "文件保存成功!")
        end if
    %>
(6)在上述的核心代码中,创建了FileSystemObject对象的实例fso,并通过OpenTextFile或CreateTextFile方法创建TextStream对象的实例ts。使用之后,添加如下代码释放内存。
    <%
        Set fso = Nothing
        Set ts = Nothing
    %>
(7)保存成功后会以对话框形式弹出,如图4-6所示为编辑style.css文件的效果。
图4-6  编辑文件效果
(8)如图4-6所示,在页面右侧列出了当前目录下的文件,如果单击文件名链接可直接在页面中编辑其内容,读者可以根据上次练习独立完成。
(9)至此,最终实例就制作完成了。在最后介绍一下思路:首先读取用户所选文件的文件名,然后使用FileSystemObject对象的OpenTextFile打开所选的文件,并使用TextStream
对象的ReadAll方法读取文件内容并将其显示在一个窗口中,在用户编辑过文件内容之后,使用FileSystemObject对象的CreateTextFile方法以可覆盖的模式创建一个同名文件,然后使用TextStream对象的Write方法将用户更新后的文件内容写入新创建的文件中。这样,就实现了文件的保存。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。