假设现在有一个字符串 s, 然后如何生成一个HTML文件然后提供给用户下载.过程中不保存该文件.还有, 当打开保存对话框时, 如何设定默认的保存文件名?!谢谢解答!

解决方案 »

  1.   

    你说的这些都无法实现。
    第一:生成一个文件,可以考虑生成在一个临时文件夹里,这样可以定时清空文件夹
    第二:保存对话框的文件类型是没办法设置的。 除非是c/s模式------------------------------------------------------------我想应该有可能的实现, 两种都有可能.
    我看DISCUZ!论坛就有这种东西, 会将短消息生成一个HTML文件, 然后提示用户保存, 而且默认保存的文件名已输入好.
      

  2.   

    在一个aspx的PageLoad中,将字符串直接输出就可以了。
      

  3.   

    实现应该没有问题!你看看这贴:
    主  题:  asp.net为什么弹不出保存对话框
    http://community.csdn.net/Expert/topicview.asp?id=5284779
      

  4.   

    在一个aspx的PageLoad中,将字符串直接输出就可以了。
    ---------------------------------------------
    抱歉,没听明白你的意思,但我想实现的功能是保存文件。
      

  5.   

    我也有相同的问题,以前是这样做的:
    在服务器端生成临时文件,然后在客户端下载,
    在Global.asax的Session_End事件中删除临时文件。现在希望不在服务器端生成这个临时文件,能直接在客户端生成该文件。
    我用了FSO直接在客户端生成文件,但是这样做要求客户端放开权限,安全级别低,不推荐使用。我也想知道有没有更好的方法!
      

  6.   

    生一个文件,将这个文件流Write到Response里
      

  7.   

    // 在此处放置用户代码以初始化页面
    string fileName = Request.QueryString["file"].ToString();


    System.IO.FileInfo file = new FileInfo(fileName); if (!File.Exists(file.FullName) )
    {
    Response.Clear();
    Response.End();
    return;
    }
    string DEFAULT_CONTENT_TYPE = "application/unknown";
    RegistryKey regkey,fileextkey;
    string filecontenttype;
    try 

    regkey=Registry.ClassesRoot; 
    fileextkey=regkey.OpenSubKey(file.Extension); 
    filecontenttype=fileextkey.GetValue("Content Type",DEFAULT_CONTENT_TYPE).ToString();
    }
    catch
    {
    filecontenttype=DEFAULT_CONTENT_TYPE;

    Response.Clear();
    Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(file.Name));
    Response.AddHeader("Content-Length",file.Length.ToString());
    //Response.ContentType="application/x-zip-compressed";
                Response.ContentType= filecontenttype;

    Response.Charset="UTF-8";
    Response.WriteFile(HttpUtility.HtmlEncode(file.FullName));

    Response.End();