我正在使用此代码作为导出从本地计算机中的gridview中获取.....
void btn_excelClick()
{
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "c.xls"));
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView2.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
我的问题是:我应该如何修改我的代码,以便在最终用户点击它时在服务器端下载文件,并且应该弹出源文件的下载链接。
PS:我的Comp目前是我的服务器......
答案 0 :(得分:1)
您需要执行以下操作:
1。)要在网络上从服务器下载一些文件,您需要在IIS上为所有人共享一个文件夹。
2。)只需将响应写入共享文件夹中的文件即可。
3.)现在您需要一个下载文件的操作。为此,只需在网页上放置一个超链接,并将href属性设置为该文件的Web位置。只要有任何用户点击链接,文件就会被下载到那台人机。
P.S。 WebURL表示站点的URL,后跟文件夹位置。例如:www.example.com/Folder1/Folder2/File1.xls
答案 1 :(得分:0)
不是将输出写入Response,而是将其写入文件。
确保写入文件的路径位于可通过IIS访问的目录中。
GridView2.RenderControl(htw);
var path = Server.MapPath("~/PublicFiles/FileName");
File.WriteAllText(path, sw.ToString());
现在您可以在响应中编写指向该文件的链接,并设置此新创建文件的路径。