当前位置:编程学习 > C#/ASP.NET >>

求保存目标html页面到本地

现在想实现一个目标的HTML页面到本地,里面包含图片和背景,c#的,急等用,寻相关方法,谢谢 --------------------编程问答-------------------- ⊙﹏⊙b汗,浏览器的中的“文件”直接保存不就成了。搞不清楚为什么会有这个需求? --------------------编程问答-------------------- 用C#保存网页为mht文件

1. 增加 COM Reference
Microsoft CDO for Windows 2000 Library (C:\WINDOWS\System32\cdosys.dll)

2. 程序:

            CDO.Message msg = new CDO.MessageClass();
            CDO.Configuration cfg = new CDO.ConfigurationClass();
           
            msg.Configuration = cfg;
            msg.CreateMHTMLBody("http://www.sina.com.cn", CDO.CdoMHTMLFlags.cdoSuppressAll, "", "");

            msg.GetStream().SaveToFile("c:\\a.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite); --------------------编程问答-------------------- webBrowser.ShowSaveAsDialog();
不过好像还是得输入保存的文件名后保存~~
就是无法有程序控制自动保存。跟IE里的保存一样~~
--------------------编程问答-------------------- http://www.google.com.hk/search?hl=zh-CN&source=hp&q=C%23+%E4%BF%9D%E5%AD%98%E7%BD%91%E9%A1%B5&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=

上面很多 --------------------编程问答-------------------- 因为这样实现方便啊,功能要求啊,呵呵,有没有相关代码呢? --------------------编程问答-------------------- up,自己顶了 --------------------编程问答--------------------  protected void Button2_Click(object sender, EventArgs e)
    {
        string html ="<%@ page language=\"C#\" autoeventwireup=\"true\" inherits=\"ReportViewCollege\" CodeFile=\"ReportViewCollege.aspx.cs\"  ValidateRequest=\"false\"%>"+


"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"+ Request["html1"];
        Byte[] stream = System.Text.Encoding.Default.GetBytes(html);
        Response.Clear();                             //清除缓冲区流中的所有内容输出
        Response.ClearHeaders();                      //清除缓冲区流中的所有头,不知道为什么,不写这句会显示错误页面
        Response.Buffer = false;                      //设置缓冲输出为false
        //设置输出流的 HTTP MIME 类型为application/octet-stream
        Response.ContentType = "application/octet-stream";
        //将 HTTP 头添加到输出流
        Response.AppendHeader("Content-Disposition", "attachment;filename=ok.html");
        Response.AppendHeader("Content-Length", stream.Length.ToString());
        //将指定的文件直接写入 HTTP 内容输出流。
        //一定要注意是WriteFile不是Write(害得我搞了一晚上)
        Response.BinaryWrite(stream);
        Response.Flush();        //向客户端发送当前所有缓冲的输出
        Response.End();
    }


这个代码不能把样式也一起copy下来,有没有其他方法把页面完整保存下来呢,在线等
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,