2

我已将一个文本文件上传到我的数据库中的图像字段中。问题是当我尝试检索文件时(使用户能够通过单击链接下载它)。当我尝试下载它时,它只是填充了网页的内容(所有的html都填充到了文本文件中)。我认为这是我尝试下载文件的方式错误。不先将内容保存到临时文件中,是否可以将内容流式传输到文件中?

我正在使用的代码如下所示。UploadFiles 是我的类,其中包含数据、ID、名称等。

    public void DownloadUploadedFile(Page sender, UploadFiles uf)
{
    sender.Response.ContentType = uf.FileType; // the binary data
    sender.Response.AddHeader("Content-Disposition", "attachment; filename=" + uf.FileName);
    sender.Response.BinaryWrite(uf.FileData);
}
4

1 回答 1

2

听起来您有太多页面的其余部分发送给客户端。您需要清除响应,然后将其关闭;尝试:

sender.Response.Clear();
sender.Response.ContentType = uf.FileType; // the binary data
sender.Response.AddHeader("Content-Disposition", "attachment; filename="
         + uf.FileName);
sender.Response.BinaryWrite(uf.FileData);
sender.Response.Close();

或者,使用处理程序 (ashx) 来执行此操作 - 因为它不包括常规页面标记。

于 2009-08-31T12:56:13.747 回答