日期:2014-05-18 浏览次数:21080 次
string filename = Server.MapPath("uploadfiles/" + FileName);
        Response.Clear();
        Response.ContentType = Mime;
        Response.AddHeader("Content-Disposition", "attachment;filename=\""+FileName+"\"");
        Response.Flush();
        Response.WriteFile(filename);
------解决方案--------------------
http://www.cnblogs.com/liping13599168/archive/2007/03/12/672025.html
------解决方案--------------------
webform的话只能由客户保存服务器端输出的文件,而不能操作客户端的文件.当然也可以使用js来完成,不过这个不太现实
一般js是无法读写客户端文件的.
下面给个简单的例子给你,不需要生成文件的...
string cardStr="张三\n李四\n王五";
//string filename = Server.MapPath("uploadfiles/" + FileName);//这个文件由你服务器端使用IO生成
//当然也可以不需要生成文件,直接输出字符串也可以,主要看你设置的MIME了
Response.ContentType ="text/plain";//文本类型的mime
Response.AddHeader("Content-Disposition", "attachment;filename=\"card.txt\"");//指定默认名称
//Response.WriteFile(filename);//把文件输出到客户端,这个会弹出保存对话框
Response.Write(cardStr);//由于设置了头,也会弹出保存对话框
------解决方案--------------------
1、文件放在外网服务器;
2、先将原文件下载;
3、将下载的文件转换为文本格式;
------解决方案--------------------
private bool DownFile(string fileName, string fullPath)
       {
           try
           {
               Response.ContentType = application / octet - stream;
               Response.AppendHeader("Content-Disposition", "attachment;filename=" +
                   HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());
               System.IO.FileStream fs = System.IO.File.OpenRead(fullPath);
               long fLen = fs.Length;
               int size = 102400;//每100K同时下载数据  
               byte[] readData = new byte[size];//指定缓冲区的大小  
               if (size > fLen) size = Convert.ToInt32(fLen);
               long fPos = 0;
               bool isEnd = false;
               while (!isEnd)
               {
                   if ((fPos + size) > fLen)
                   {
                       size = Convert.ToInt32(fLen - fPos);
                       readData = new byte[size];
                       isEnd = true;
                   }
                   fs.Read(readData, 0, size);//读入一个压缩块  
                   Response.BinaryWrite(readData);
                   fPos += size;
               }
               fs.Close();
               System.IO.File.Delete(fullPath);
               return true;
           }
           catch
           {
               return false;
           }
       }
下载之后再改.或者下载的时间.保存为 .txt