我已将文本文件上传到我的数据库中的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);
}
答案 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)来执行此操作 - 因为它不包括常规页面标记。