Asp.net向客户端发送dotx(word模板)

时间:2010-11-11 09:54:00

标签: asp.net ms-word

在我的程序中,我需要向客户端发送一个dotx。现在我将其处理为:

  1. 在服务器端生成临时dotx,其中包含来自数据库的一些数据。
  2. 将其发送到客户端。代码是:

            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "unicode";
            Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
            Response.AddHeader("content-disposition", "attachment; filename=**.dotx");
            Response.AddHeader("Content-Length", dataWord.Length.ToString());
            Response.ContentEncoding = System.Text.Encoding.Unicode;
            Response.BinaryWrite(dataWord);
            Response.Flush();
            Response.Close();
    

    dataWord是dotx。

  3. 删除临时点。
  4. 这个过程应该是正确的。但有时我只在客户端获得一份空白文件。我确信服务器端生成的dotx不是空白。什么可能导致这个问题?在使用Response向客户端发送数据期间是否发生错误,或者我的代码不好?

2 个答案:

答案 0 :(得分:0)

认为你必须有一个有效的文件名而不是**。dotx

答案 1 :(得分:0)

我发现有很多不同的版本,它将实际文件写入服务器,然后通过Response.TransmitFile发送,以便更加健壮。

通过这样做,您还可以通过在服务器上手动检查文件以查看它们是否为空白并可能发现其他问题来进行额外的调试步骤。