保存按钮,将网页另存为mht文件(.net 4 vb)

发布于 2024-12-11 23:35:04 字数 1116 浏览 0 评论 0原文

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

我目前正在使用以下代码,但我需要修改它,以便它捕获用户正在查看的当前页面的 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

I have a website written in .net 4. I'd like to include a save button on one the pages that will save the webpage as a mht file. This way the user can save the page as a mht file type on his/her desktop without have to use the browser toolbar.

I'm currently working with the following code but I need to modify it so it to capture the url of the current page the user is viewing verses hard coding the url into the button click event. Thanks.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

¢好甜 2024-12-18 23:35:04

您需要将 COM 引用添加到“Microsoft CDO For Windows 2000 库”和“Microsoft ActiveX 数据对象 2.5 库”。然后导入它们:

Imports ADODB
Imports CDO

You need to Add COM References to the 'Microsoft CDO For Windows 2000 Library' and 'Microsoft ActiveX Data Objects 2.5 Library'. Then import them:

Imports ADODB
Imports CDO
小瓶盖 2024-12-18 23:35:04

试试这个:

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

Try this:

SavePage(HttpContext.Current.Request.Url.AbsoluteUri, "C:\whatever.mht")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文