【发布时间】:2016-08-13 14:14:25
【问题描述】:
将我的 Gridview 保存到文件然后下载到浏览器时遇到问题。
我的代码在本地主机上运行,即使我得到一个异常抛出:线程被中止。
当我将我的网站发布到我的服务器时,我收到错误消息: 不支持给定路径的格式。
protected void btn_SaveToFile_Click(object sender, EventArgs e) {
string path = Server.MapPath("~/Sheets/");
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
try {
using (StringWriter sw = new StringWriter()) {
using (HtmlTextWriter hw = new HtmlTextWriter(sw)) {
StreamWriter writer = File.AppendText(path + DateTime.Now +".xls");
GridView1.RenderControl(hw);
writer.WriteLine(sw.ToString());
writer.Close();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename="+DateTime.Now+ ".xls");
Response.TransmitFile(Server.MapPath("~/Sheets/"+DateTime.Now+".xls"));
Response.End();
}
}
}
catch (Exception ex){
Debug.WriteLine("Error saving to file: " + ex.Message);
}
}
【问题讨论】:
-
如果可以直接将 .xls 下载到浏览器,而无需先保存到服务器,那将是首选。
-
网站用户账户是否有权创建Sheets目录并向其添加文件?
-
创建了 Sheets 文件夹,但我的 FTP 文件夹中没有文件。但是代码一定有问题,因为我得到 Thread 被中止,即使在 localhost 上也是如此。
-
不支持给定路径的格式。似乎是我的文件没有创建的问题