如何把stream文件流转化为文件?

原创 2007年09月17日 15:01:00
CSDN首页 新闻 论坛 小组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 第二书店 程序员

如何把stream文件流转化为文件?

楼主charlay(磊)2005-10-24 14:44:15 在 .NET技术 / C# 提问

按照httpWebRequest和httpWebResponse来获得服务器上的文件,该如何把stream文件流转换成文件呢?例如是dll文件的话?! 问题点数:50、回复次数:13Top

1 楼charlay(磊)回复于 2005-10-24 14:46:42 得分 0

急等!Top

2 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 15:08:36 得分 40

这个问题很简单的啊.有一个方法叫SaveStreamToFile,就是把流保存成指定的文件的.  
  具体说明如下:  
  public   static   void   SaveStreamToFile(  
        Stream   inputStream,  
        string   path  
  );  
  Top

3 楼charlay(磊)回复于 2005-10-24 16:40:09 得分 0

private   void   Form1_Load(object   sender,   System.EventArgs   e)  
  {  
      WebRequest   request   =   null;  
      WebResponse   response   =   null;  
   
      request   =   WebRequest.Create("http://community.csdn.net/images/CSDN_logo.GIF");            
      response   =request.GetResponse();  
      Stream   stream   =   response.GetResponseStream();  
   
      MetaData.SaveStreamToFile(stream,@"e://CSDN_logo.GIF");  
  }  
   
  我试着从csdn服务器端下载一个logo.gif文件保存到e盘根目录,结果是文件有了,和原始文件大小也一样,可是内容不对,图片不能正常打开!望高手解答!Top

4 楼charlay(磊)回复于 2005-10-24 17:14:50 得分 0

急等!Top

5 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 17:18:51 得分 0

其实你想做下载的话你还是用webclient类来做吧,用webclient类的downloadfile方法来获取.  
  string   remoteUri   =   "http://community.csdn.net/images/";  
  string   fileName   =   "CSDN_logo.GIF",    
  string   myStringWebResource   =   null;  
  WebClient   myWebClient   =   new   WebClient();  
  myStringWebResource   =   remoteUri   +   fileName;  
  myWebClient.DownloadFile(myStringWebResource,fileName);                  
  这样就把你的那个文件保存到了你的exe文件夹下了.Top

6 楼charlay(磊)回复于 2005-10-24 17:23:08 得分 0

谢谢,其实我开始也用过这个的,但是由于中间设计到一个代理服务器的问题,所以只能转用WebRequest和WebResponse了。Top

7 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 17:26:14 得分 0

以上代码刚刚在控制台程序下测试通过.  
  Top

8 楼charlay(磊)回复于 2005-10-24 17:34:43 得分 0

这个小软件要求可以通过代理服务器访问Internet,所以没有使用WebClient。  
  xiaomatian你指我的代码可以正确执行?文件下载下来也能正常打开?Top

9 楼navy_koo(平湖秋水)回复于 2005-10-24 17:43:00 得分 5

 
      request   =   WebRequest.Create("http://community.csdn.net/images/CSDN_logo.GIF");            
      response   =request.GetResponse();  
      Stream   stream   =   response.GetResponseStream();  
   
      这种方法是不行的。  
      原因是:   默认情况下Response输出的是Html响应流,也就是说其中包括了一些html元素;  
  所以这个问题关系到服务端怎么响应Response或者说怎么写Response,Response也是有类型的即ContentType。客户端只能接受。  
       
      所以,一般往客户端写文件会用  
  Response.AddHeader("Content-Disposition",   "attachment;   filename="   +   file.Name);  
  Response.AddHeader("Content-Length",   file.Length.ToString());  
  Response.ContentType   =   "application/octet-stream";  
  Response.WriteFile(file.FullName);  
   
  输出图片也有很详细的ContentType  
  Response.ContentType   =   "image/JPEG";  
  Response.ContentType   =   "image/BMP";  
  。。。  
     
  Top

10 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 18:05:46 得分 0

呵呵.根据你的要求刚刚在控制台下写了一个webrequest的下载文件的.  
  调试通过.  
  Console.WriteLine("Hello   World!");  
  WebRequest   wreq=WebRequest.Create("http://community.csdn.net/images/CSDN_logo.GIF");  
  WebResponse   wresp=wreq.GetResponse();  
  Stream   respStream=wresp.GetResponseStream();  
  int   length=(int)wresp.ContentLength;  
  BinaryReader   br=new   BinaryReader(respStream);  
  FileStream   fs;  
  fs   =   File.Create("M://csdn.gif");  
  fs.Write(br.ReadBytes(length),   0,   length);  
   
  br.Close();  
  fs.Close();  
  Console.WriteLine("DownLoad   Success!!");Top

11 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 18:06:44 得分 0

以上代码下载的那个gif图片可以打开.Top

12 楼xiaomatian(趴趴熊◎%#……※×)回复于 2005-10-24 18:30:26 得分 0

不是说的代码可以运行,我是我写用webclient写的那个可以运行.上面那个是用你要求的来写的,已经测试通过,可以打开,你再修改一下就可以了!Top

13 楼holym(小雨)回复于 2005-10-24 19:40:48 得分 5

public   void   download(string   file)  
  {  
  string   file   =   Server.MapPath(file);  
  if   (file   ==   null)  
  {  
        Response.Write("参数错误!");  
        return;  
    }  
  if   (File.Exists(file))  
    {  
          Response.ContentType   =   "application/octet-stream";  
          Response.AddHeader("Content-Disposition",   "attachment;FileName="+Server.UrlEncode(Path.GetFileName(file)));  
          Response.WriteFile(file);  
          Response.End();  
    }  
  else  
    {  
        Response.Write("文件不存在!");  
    }  
  }Top

相关问题


 
北京百联美达美数码科技有限公司  版权所有  京 ICP 证 020026 号
Copyright © 2000-2006, CSDN.NET, All Rights Reserved

 

c#FileStream文件读写(转)

//C#文件流写文件,默认追加FileMode.Append              string msg = "okffffffffffffffff";             byte[] ...
  • zhuyu19911016520
  • zhuyu19911016520
  • 2015年06月15日 13:41
  • 102467

c#中文件与二进制流文件的转换

c# SQL数据库image图片文件的保存于读取             SqlConnection con = new SqlConnection("Persist Security Info=F...
  • fox123871
  • fox123871
  • 2012年11月19日 11:25
  • 11321

js读取文件(转)

var getActiveXObject ,getFile,someMessage; getAXO = new ActiveXObject("Scripting.FileSystemObject")...
  • dragoo1
  • dragoo1
  • 2016年07月20日 22:35
  • 1319

Java将流转化为文件

import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.i...
  • shb2058
  • shb2058
  • 2016年01月26日 10:06
  • 783

JAVA--将二进制流转换成图片文件

import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import jav...
  • u010926176
  • u010926176
  • 2014年01月27日 17:26
  • 12050

c# word文档与二进制数据的相互转换

c# word文档与二进制数据的相互转换  最近项目出使用到了将word文档以二进制的方法存到数据库中,并再次读取出二进制数据转换为word文档。最后总结了一下,不多说看示例方法: ...
  • jpzy520
  • jpzy520
  • 2014年02月26日 16:02
  • 2086

将图片打成压缩包,并转换为byte[]

package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im...
  • u013637569
  • u013637569
  • 2016年12月02日 13:46
  • 1015

将二进制流转换成图片文件

/** * 将二进制流转换成图片文件 */ public class ImgErToFileUtil
  • u013322594
  • u013322594
  • 2016年01月14日 10:03
  • 190

vlc命令行: 转码 流化 推流

写在命令行之前的话:     VLC不仅仅可以通过界面进行播放,转码,流化,也可以通过命令行进行播放,转码和流化。还可以利用里面的SDK进行二次开发。 vlc命令行使用方法:     1...
  • vbLittleBoy
  • vbLittleBoy
  • 2014年02月21日 12:33
  • 10203

java IO(File类、字节流与字符流、字节字符转换流) 总结

File类 在整个io包中,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作,要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下...
  • huahuaniu998
  • huahuaniu998
  • 2015年03月06日 18:06
  • 706
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何把stream文件流转化为文件?
举报原因:
原因补充:

(最多只允许输入30个字)