社区
C#
帖子详情
如何把stream文件流转化为文件?
chen_yalei
2005-10-24 02:44:15
按照httpWebRequest和httpWebResponse来获得服务器上的文件,该如何把stream文件流转换成文件呢?例如是dll文件的话?!
...全文
5214
13
打赏
收藏
如何把stream文件流转化为文件?
按照httpWebRequest和httpWebResponse来获得服务器上的文件,该如何把stream文件流转换成文件呢?例如是dll文件的话?!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
holym
2005-10-24
打赏
举报
回复
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("文件不存在!");
}
}
xiaomatian
2005-10-24
打赏
举报
回复
不是说的代码可以运行,我是我写用webclient写的那个可以运行.上面那个是用你要求的来写的,已经测试通过,可以打开,你再修改一下就可以了!
xiaomatian
2005-10-24
打赏
举报
回复
以上代码下载的那个gif图片可以打开.
xiaomatian
2005-10-24
打赏
举报
回复
呵呵.根据你的要求刚刚在控制台下写了一个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!!");
navy_koo
2005-10-24
打赏
举报
回复
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";
。。。
chen_yalei
2005-10-24
打赏
举报
回复
这个小软件要求可以通过代理服务器访问Internet,所以没有使用WebClient。
xiaomatian你指我的代码可以正确执行?文件下载下来也能正常打开?
xiaomatian
2005-10-24
打赏
举报
回复
以上代码刚刚在控制台程序下测试通过.
chen_yalei
2005-10-24
打赏
举报
回复
谢谢,其实我开始也用过这个的,但是由于中间设计到一个代理服务器的问题,所以只能转用WebRequest和WebResponse了。
xiaomatian
2005-10-24
打赏
举报
回复
其实你想做下载的话你还是用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文件夹下了.
chen_yalei
2005-10-24
打赏
举报
回复
急等!
chen_yalei
2005-10-24
打赏
举报
回复
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盘根目录,结果是文件有了,和原始文件大小也一样,可是内容不对,图片不能正常打开!望高手解答!
xiaomatian
2005-10-24
打赏
举报
回复
这个问题很简单的啊.有一个方法叫SaveStreamToFile,就是把流保存成指定的文件的.
具体说明如下:
public static void SaveStreamToFile(
Stream inputStream,
string path
);
chen_yalei
2005-10-24
打赏
举报
回复
急等!
Java 收集
Stream
流
、
流
转数组、
流
转集合
收集
stream
流
把
stream
流
的数据转回成集合。
stream
的作用是把集合转换成一根传送带,借用
stream
流
的强大功能进行的操作。 但是实际开发中数据最终的形式还是应该是集合,最终
stream
流
操作完毕以后还是要转换成集合。 这就是收集
Stream
流
。
stream
流
是手段。 集合才是目的。
流
只能使用一次。 public static void main(String[] args) { List<String> ls = new ArrayList<&
Stream
流
转原理
from 曾经对面的同事 每个
Stream
包含三个阶段 源、零个或多个中间操作、终止操作 源阶段 首先看一个例子,这里的例子非常简单,就是将List构造成了一个
Stream
,然后进行循环, 但是它是如何就将list构造成了
Stream
List<String>stringList = new ArrayList<>(); stringList.add("颜智慧"); st...
java
stream
toarray_Java8 方式解决
Stream
流
转其他数组
Java8 方式解决
Stream
流
转其他数组一. 题记:原来的List转数组用的是如下方式:exampleprivate static void listToStringArray(List lists) {String[] strs = (String[]) lists.toArray(new String[2]);printArray(strs);}private static void p...
Flink多
流
转换(Flink
Stream
Unoin、Flink
Stream
Connect、Flink
Stream
Window Join)
【代码】Flink多
流
转换(Flink
Stream
Unoin、Flink
Stream
Connect、Flink
Stream
Window Join)
MIPI-video-mode- and -command-mode- differences
源码链接: https://pan.quark.cn/s/0f7c75cb3aad ### MIPI Video Mode 与 Command Mode 的差异 #### 一、引言 MIPI (Mobile Industry Processor Interface) 是一种用于连接移动设备中处理器及其外围设备的标准化接口。MIPI 接口支持多种协议,其中包含 DSI (Display Serial Interface) 和 DCS (Display Control Interface) 等协议。在 MIPI 接口的应用中,主要涉及两种工作模式:Video Mode(视频模式)和 Command Mode(命令模式)。本文旨在系统性地阐述这两种模式的工作机制、特性以及实际应用环境。 #### 二、LCD RAM 概念说明 在进一步探讨 MIPI 的两种模式之前,有必要对文中提及的“LCD RAM”概念进行明确。实际上,“LCD RAM”并非一个通用术语,而是本文作者用来描述 LCD 控制器中用于存储显示数据的内存区域。LCD(Liquid Crystal Display,液晶显示屏)通常配备一个控制 IC(Integrated Circuit,集成电路),该控制 IC 可能内置 RAM 以缓存显示数据。 #### 三、MIPI Video Mode(视频模式) **定义:** - 视频模式是一种类似于传统 RGB 接口的工作模式,它要求主机持续不断地向显示器传输刷新数据。 - 在这种模式下,数据和控制信号以报文的形式通过 MIPI 总线进行传输。 - 显示器本身无需配备帧缓冲器,因为主机会周期性地刷新屏幕。 **特点:** 1. **实时性高:** 主机需要不...
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章