下载文件的核心代码:
private void DownLoadDataFile() { try { string filePath = @"C:\lala.csv"; //the target file path FileInfo downloadFile = new FileInfo(filePath); if (downloadFile.Exists) { Response.Clear(); Response.ClearHeaders(); Response.Buffer = false; Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII)); Response.AppendHeader("Content-Length", downloadFile.Length.ToString()); Response.WriteFile(downloadFile.FullName); Response.Flush(); Response.End(); } else { } } catch (Exception ex) { } }
也可以简单的参考这些文章:
http://www.cnblogs.com/futao/archive/2009/12/29/1635236.html
http://www.cnblogs.com/weixing/archive/2012/02/27/2369567.html
然而对于SharePoint 中的WebPart 中的上下文环境中没有 Response 这个对象,但是可以用 HttpContext.Current.Response 对象进行代替 详情请看 http://social.technet.microsoft.com/Forums/zh-CN/mosses/thread/3d5f36bb-5c89-49c6-a15d-e30225d50d5e
实例代码如下所示:
private void DownLoadDataFile() { try { string filePath = @"C:\lala.csv"; //the target file path FileInfo downloadFile = new FileInfo(filePath); if (downloadFile.Exists) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.Buffer = false; HttpContext.Current.Response.ContentType = "application/octet-stream"; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachement;filename=" + HttpUtility.UrlEncode(downloadFile.FullName, System.Text.Encoding.ASCII)); HttpContext.Current.Response.AppendHeader("Content-Length", downloadFile.Length.ToString()); HttpContext.Current.Response.WriteFile(downloadFile.FullName); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } else { } } catch (Exception ex) { } }
。。。。。。