2011-10-25 75 views
0

我有一个用.net 4编写的网站。我想在网页上包含一个保存按钮,将网页保存为mht文件。这样用户可以将页面保存为他/她的桌面上的mht文件类型,而无需使用浏览器工具栏。保存按钮,将网页保存为mht文件(.net 4 vb)

我目前正在使用下面的代码,但我需要修改它,以便捕获用户正在查看的当前页面的url,并将硬编码的url编码到按钮单击事件中。谢谢。

Partial Class Form1 
    Inherits System.Web.UI.Page 

End Class 

Public Class Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, _ 
         ByVal e As System.EventArgs) Handles Button1.Click 
     SavePage("http://forums.microsoft.com/MSDN/default.aspx", "C:\msdn.mht") 
    End Sub 

    Private Sub SavePage(ByVal Url As String, ByVal FilePath As String) 
     Dim iMessage As CDO.Message = New CDO.Message 
     iMessage.CreateMHTMLBody(Url, _ 
     CDO.CdoMHTMLFlags.cdoSuppressNone, "", "") 
     Dim adodbstream As ADODB.Stream = New ADODB.Stream 
     adodbstream.Type = ADODB.StreamTypeEnum.adTypeText 
     adodbstream.Charset = "US-ASCII" 
     adodbstream.Open() 
     iMessage.DataSource.SaveToObject(adodbstream, "_Stream") 
     adodbstream.SaveToFile(FilePath, _ 
        ADODB.SaveOptionsEnum.adSaveCreateOverWrite) 
    End Sub 

End Class 

回答

0

试试这个:

SavePage(HttpContext.Current.Request.Url.AbsoluteUri, "C:\whatever.mht") 
+0

感谢,我得到以下错误,当我试图实现您的代码更改:“无法加载文件或程序集Interop.ADODB,版本= 6.0.0.0,文化=中立, PublicKeyToken = null'或它的一个依赖关系,系统找不到指定的文件。“ –

2

你需要COM引用添加到 '微软CDO Windows 2000库' 和 'Microsoft ActiveX数据对象2.5库'。然后将它们导入:

Imports ADODB 
Imports CDO