0

我正在使用此代码作为从本地机器中的 gridview 导出到 excel .....

   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 目前是我的服务器...

4

2 回答 2

1

您将需要执行以下操作:

1.) 要让某个人从 Web 上的服务器下载文件,您需要一个在 IIS 上共享给所有人的文件夹。

2.) 只需将响应写入共享文件夹中的文件即可。

3.) 现在你需要一个动作来下载文件。为此,只需在网页上放置一个超链接并将 href 属性设置为文件的 Web 位置。每当任何用户单击链接时,文件都会下载到该人的机器上。

PS WebURL 表示您网站的 URL,后跟文件夹位置。例如:www.example.com/Folder1/Folder2/File1.xls

于 2012-12-03T09:02:54.937 回答
0

与其将输出写入响应,不如将其写入文件。

确保写入文件的路径位于可通过 IIS 访问的目录中。

GridView2.RenderControl(htw);
var path = Server.MapPath("~/PublicFiles/FileName");
File.WriteAllText(path, sw.ToString());

现在您可以在响应中写入文件的链接,并设置这个新创建文件的路径。

于 2012-12-03T08:53:45.403 回答