ASP 3.0高级编程(二十七)(2)
2008-02-23 05:38:43来源:互联网 阅读 ()
ProcessForm (output_url, template_url, [insertion_point])
临时文件和输出文件相对于当前页面使用相对URL来定义。输出文件可以是ASP网页,如果这样,当其在浏览器打开时,将正常处理。临时文件可以包含普通的ASP代码,但不运行,仅简单地拷贝输出文件。然而,如果把临时文件中的ASP代码放在<%%…%%>限定符中,当临时文件调入时代码将被执行,这允许动态生成的数值(诸如进行处理的时间和日期)插入到输出页面中。
下面是示例文件template.asp(在chapter06目录的Tools子目录中):
This file was created by the ASP Tools component
------------------------------------------------
The content of the request was:
Output file name: <%% = Request.Form("txtOutput") %%>
Template file name: <%% = Request.Form("txtTemplate") %%>
Insertion point text: <%% = Request.Form("txtInsert") %%>
------------------------------------------------
Created <%% = Now() %%>
示例页面包含着预定使用这个临时文件的控件,这些控件创建一个和临时文件在同一个文件夹中的名为output.asp的输出文件,如图6-19所示:
图6-19 运行Tools.ProcessForm方法的界面
点击按钮时,将运行一部分ASP代码,从文本框中采集数据并调用ProcessForm方法:
If Len(Request.Form("cmdProcess")) Then
strTemplate = Request.Form("txtTemplate")
strOutput = Request.Form("txtOutput")
strInsertPoint = Request.Form("txtInsert")
'…
' we display the template contents here
'…
' process the form contents
objTools.ProcessForm strOutput, strTemplate, strInsertPoint
'…
' we display the output file contents here
'…
End If
(1) 设置输出文件的访问权限
如果得到一个“MSWC.Tools error 80004005 Couldn’t open output file”错误信息,这意味着IIS不允许向指定的目录中写入输出文件。解决这个问题最快捷的方法是,在Properties对话框中的Security选项卡中,将相应的Tools目录以及存放output.asp的目录的Everyone组的Full Control设置成允许,如图6-20所示:
图6-20 设置输出文件访问权限的界面
(2) 查看文件内容
图6-21显示了上面代码用缺省值运行缺省值运行的结果,可以看到原来的临时文件内容,以及使用ProcessForm方法插入到输出文件中的内容。
图6-21 输出文件的内容
这里省略了显示来自前面见过的文件内容的程序代码。显示内容的方法与ASP Installable Components主菜单页面中用于显示内容链接列表文件的方法相同。使用FileSystemObject和TextStream对象的实例把整个文件读入到一个字符串中,然后将其插入网页中(记住要使用Server.HTMLEncode方法,以便把字符“<”和“>”转换成可用于显示的字符)。
QUOT = Chr(34) 'double-quote character
…
'create a FileSytemObject object to display the template file contents
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Response.Write "The content of the template file <B>" & _
strTemplate & "</B> is:"
Set objTStream = objFSO.OpenTextFile(Server.MapPath(strTemplate), ForReading)
strContent = Server.HTMLEncode(objTStream.ReadAll) 'read whole file
objTStream.Close
Response.Write "<DIV CLASS=" & QUOT & "showcode" & QUOT & "><PRE>" & _
strContent & "</PRE></DIV>"
…
(3) 关于插入点参数
ProcessForm方法可选的insertion_point参数能用来在文件中的特定点插入文本,这个方法是先查找输出文件中特定字符串的第一个实例,然后在该位置插入创建的新内容,在输出文件中通过把星号(*)放在insertion_point字符串前面来放置新内容。如果省略了insertion_point参数,新的内容会取代整个输出文件。
注意insertion_point参数在Tools.ProcessForm方法的早期版本中不能使用。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ASP 3.0高级编程(二十六)
下一篇:ASP 3.0高级编程(二十八)
- ASP 3.0高级编程(二十七) 2019-06-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
