从数据库图像字段保存​​文件

时间:2009-08-31 12:54:05

标签: c# sql imagefield

我已将文本文件上传到我的数据库中的Image字段。问题是当我尝试检索文件时(让用户能够通过点击链接下载它)。当我尝试下载它时,它只是填充了网页的内容(所有的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);
}

1 个答案:

答案 0 :(得分: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)来执行此操作 - 因为它不包括常规页面标记。