HOW TO: Archive the Results of a Dynamic Page to an HTML Page in ASP.NET Using Visual Basic .NET (811162)
The information in this article applies to:
- Microsoft ASP.NET (included with the .NET Framework 1.1)
- Microsoft ASP.NET (included with the .NET Framework) 1.0
- Microsoft Visual Basic .NET (2003)
- Microsoft Visual Basic .NET (2002)
For a Microsoft Visual C# .NET version of this
article, see
810205. SUMMARYThis step-by-step article describes how to retrieve the HTML
results of a page as a stream and then download the stream to a file. When you
use the FileStream object and set the Response.Filter property to the FileStream object, all HTTP output that Response.Write sends also downloads as a stream to a file. back to the
topCreate Web FormTo create a Web form:
- In Microsoft Visual Studio .NET, create a new Visual Basic
.NET ASP.NET Web Application project named ASPNETFilterVB.
- Right-click the designer pane of WebForm1.aspx.
- Click View HTML Source to edit the HTML
code.
- Replace the existing code with the following code :
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="ASPNETFilterVB.WebForm1"%>
<HTML>
<HEAD>
<title>SaveResponse</title>
</HEAD>
<body>
<form id="SaveResponse" method="post" runat="server">
<asp:TextBox ID="TextBox1" Text="Textbox 1" Runat="server" /><br>
<asp:ListBox ID="Listbox1" Runat="server" Size="3">
<asp:ListItem Value="0">Zero</asp:ListItem>
<asp:ListItem Value="1" Selected="True">One</asp:ListItem>
<asp:ListItem Value="2">Two</asp:ListItem>
</asp:ListBox><br>
<asp:CheckBox ID="Checkbox1" Runat="server" Checked="True" Text="Checkbox 1" />
</form>
</body>
</HTML>
back to the topCreate the ResponseFilter ClassTo create the ResponseFilter class:
- Add a new class named ResponseFilter.vb.
- Replace the existing code with the following code:
Imports System.IO
Public Class ResponseFilter
Inherits Stream
Dim fs As FileStream
Dim m_sink As Stream
Dim m_position As Long
Sub New(ByVal sink As Stream)
m_sink = sink
fs = New FileStream("c:\FilterOutput\Response.htm", FileMode.OpenOrCreate, FileAccess.Write)
End Sub
'The following members of Stream must be overridden.
Public Overrides ReadOnly Property CanRead() As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property CanSeek() As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property CanWrite() As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property Length() As Long
Get
Return 0
End Get
End Property
Public Overrides Property Position() As Long
Get
Return m_position
End Get
Set(ByVal Value As Long)
m_position = Value
End Set
End Property
Public Overrides Function Seek(ByVal offset As Long, ByVal direction As SeekOrigin) As Long
Return 0
End Function
Public Overrides Sub SetLength(ByVal length As Long)
m_sink.SetLength(length)
End Sub
Public Overrides Sub Close()
m_sink.Close()
fs.Close()
End Sub
Public Overrides Sub Flush()
m_sink.Flush()
End Sub
Public Overrides Function Read(ByVal buffer() As Byte, ByVal offset As Int32, ByVal count As Int32) As Int32
Return m_sink.Read(buffer, offset, count)
End Function
Public Overrides Sub Write(ByVal buffer() As Byte, ByVal offset As Int32, ByVal count As Int32)
' Write out the response to the browser.
m_sink.Write(buffer, 0, count)
' Write out the response to the file.
fs.Write(buffer, 0, count)
End Sub
End Class
- Create a folder namedC:\FilterOutput.
- Grant read and write access on the folder for the ASPNET
user.
- Run the Web application.
back
to the topUse the Response Filter Class- In Solution Explorer, select
WebForm1.aspx.
- Right-click and then select View
Code.
- Add the following code to thePage_Init event code:
Response.Filter = New ResponseFilter(Response.Filter) back
to the topTest the Response Filter- Save the changes to the ASPNETFilterVB Web
project.
- On the Build menu, click Build
Solution.
- Start Microsoft Internet Explorer, and then open
WebForm1.aspx by specifying the following URL, where
IISServerName is the name of your Microsoft Internet
Information Services (IIS) server:
http://IISServerName/ASPNETFilterVB/WebForm1.aspx - Find the Response.htm file in the C:\FilterOutput
folder.
back to the topREFERENCESFor more information, visit the following Microsoft
Developer Network (MDSN) Web site: back
to the top
Modification Type: | Major | Last Reviewed: | 5/21/2003 |
---|
Keywords: | kbhowto kbWebForms kbFileIO KB811162 kbAudITPRO kbAudDeveloper |
---|
|