c#中关于二进制流的读取问题。

Tulipfly 2009-03-02 04:42:06
在我的程序中,我想让用户在点击一个链接出现‘保存’的对话框,我使用了下面的方式,可是将http地址获得的流文件读取到byte中老是读不全,请问下是什么原因,或者有没有别的什么方法可以实现相同的效果,先谢谢了。。。。。

WebRequest wreq = WebRequest.Create("http://file.fetion.chinacache.net/www/home/v6/images/face/lianbu/lianbu.ffl");

using (HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse())
{
Response.Clear();
Response.ContentType = "application/octet-stream";//wresp.ContentType;
Response.AppendHeader("content-disposition", "attachment;filename=" + Server.UrlEncode("lianbu.ffl"));

var stream = wresp.GetResponseStream();

byte[] bb = new byte[wresp.ContentLength];
stream.Read(bb, 0, (int)wresp.ContentLength);
stream.Close();
stream.Dispose();
Response.BinaryWrite(bb);
Response.End();

}
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingya2008 2009-03-02
  • 打赏
  • 举报
回复
楼上的,using了你还close,多余啊。
liaoyunt07 2009-03-02
  • 打赏
  • 举报
回复
楼主发了两遍~~
CutBug 2009-03-02
  • 打赏
  • 举报
回复
 using (HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse())
{

Stream stream = wresp.GetResponseStream();
StreamReader sr = new StreamReader(stream);
s = sr.ReadToEnd();
sr.Close();
stream.Close();
}
byte[] bSet = System.Text.Encoding.UTF8.GetBytes(s);
Jinglecat 2009-03-02
  • 打赏
  • 举报
回复
你先确定是 WebRequest 获取的 wresp 不全,直接先输出到文件看看文件是否完整

还是输出 HttpResponse.BinaryWrite 丢失
liujiayu10 2009-03-02
  • 打赏
  • 举报
回复
Response.Clear();
Response.Buffer = true;
EnableViewState = false;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "application/octet-stream";
Response.HeaderEncoding = System.Text.Encoding.GetEncoding("gbk"); //gbk支持gb2312和big5
Response.AppendHeader("Content-Disposition", "attachment;filename=" + oldname);
Response.WriteFile(path + filename);
Response.Flush();
Response.Close();
Response.End();
北京的雾霾天 2009-03-02
  • 打赏
  • 举报
回复
使用Response.WriteFile(fileName)不就挺好吗?

62,268

社区成员

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

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

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

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