写了个以文件流方式从服务器获取数据并保存到本地的方法有问题请帮忙看看

l890j817 2011-01-10 09:50:30
下面是代码,下载下来的文件固定占用大小8K,内容大小7.14K,小于这个仍然是那么多不过小于这个大小的文件可用。能看出是什么问题吗?

private void DownLoad()
{
/*读取数据库文件流,保存到本地*/
int id;
byte[] file;//二进制数据
string fileName;//目标文件

if (int.TryParse(this.Request.QueryString["Id"], out id))
{
MyDocument document = this.documentService.GetDocument(id);
if (document != null)
{
fileName = document.FileName;
file = document.FileContent;

//MemoryStream stream = new MemoryStream(file);

FileStream fs_stream = new FileStream(fileName, FileMode.OpenOrCreate);

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));

BinaryWriter writefile = new BinaryWriter(fs_stream);

writefile.Write(file);

writefile.Close();
}
}
}
...全文
440 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
l890j817 2011-01-10
  • 打赏
  • 举报
回复
已解决,原来是使用了
FileStream fs_stream = new FileStream(fileName, FileMode.OpenOrCreate);

BinaryWriter writefile = new BinaryWriter(fs_stream);

writefile.Write(file);

这样这个流的大小始终为页面大小。去掉后正常。
l890j817 2011-01-10
  • 打赏
  • 举报
回复
1L抱歉忘了说了我服务器存取用的IBatis,读取名为FileContent列中对应Id保存的byte[]。
所以String FullFileName = Server.MapPath(“文件路径”),这个文件路径我该怎么指定啊?求解

[Quote=引用 1 楼 jayinit 的回复:]
C# code
private void FileDownload()
{
String FullFileName = Server.MapPath( "文件路径 ");
FileInfo DownloadFile = new FileInfo(FullFileName……
[/Quote]
  • 打赏
  • 举报
回复
private   void   FileDownload() 
{
String FullFileName = Server.MapPath( "文件路径 ");
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
Response.ContentType = "application/octet-stream ";
Response.AppendHeader( "Content-Disposition ", "attachment;filename= " + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
Response.AppendHeader( "Content-Length ", DownloadFile.Length.ToString());
Response.WriteFile(DownloadFile.FullName);
Response.Flush();
Response.End();
}

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧