肯定是权限的问题,你的WEB肯定是放在哪个盘的一个目录中,然后你的代码 @"d:/1.mht" ,这是直接操作d盘根目录呀....服务器肯定不愿意啊!!在你的WEB目录下,建一个目录专门用来存这些文件。还要用读写权限,internet来宾帐号这些。

解决方案 »

  1.   

    权限问题..设置d盘netservice的所有权限不过一般都不这么干 我们有server.mappath..玩网站的目录即可...
    等等...你要保存到本地?那你只能先生成xxoo.mth 然后流读取输出到客户端了..就相当于你下载文件一样..什么?你要问我下载代码? 这个还不能去google么?.......
      

  2.   

    我的业务需求是用户可以选择多条数据进行下载(每条数据生成一个mht文件里面包含照片信息),在服务端生成 后续这些生成的文件该如何处理呢
      

  3.   

    我的业务需求是用户可以选择多条数据进行下载(每条数据生成一个mht文件里面包含照片信息),在服务端生成 后续这些生成的文件该如何处理呢就是给用户提供一个文件列表页面,把刚刚生成的文件全部显示在列表里面,然后让用户自己选择下载。代码网上很多,做法就这样,哪怕是大网站也都差不多这么做的
      

  4.   

    /// <summary>
            /// 提供下载
            /// </summary>
            /// <param name="path">服务器路径</param>
            /// <param name="page">this</param>
            ///  <param name="isDelete">是否删除</param>
            public static void UploadExcel(string path, System.Web.UI.Page page, bool isDelete)
            {
                System.IO.FileInfo file = new System.IO.FileInfo(path);
                page.Response.Clear();
                page.Response.Charset = "GB2312";
                page.Response.ContentEncoding = System.Text.Encoding.UTF8;
                // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 
                page.Response.AddHeader("Content-Disposition", "attachment; filename=" + page.Server.UrlEncode(file.Name));
                // 添加头信息,指定文件大小,让浏览器能够显示下载进度 
                page.Response.AddHeader("Content-Length", file.Length.ToString());            // 指定返回的是一个不能被客户端读取的流,必须被下载 
                page.Response.ContentType = "application/ms-excel";            // 把文件流发送到客户端 
                page.Response.WriteFile(file.FullName);            page.Response.Flush();
                if (isDelete)
                {
                    System.IO.File.Delete(path);
                }            // 停止页面的执行 
                page.Response.End();        }
    可以试试看