求解 上传文件怎么做到进度条,和流的理解

ie8weblee 2012-08-22 05:39:35



HttpFileCollection files = Request.Files;

for (int j = 0; j < files.Count;j++ )
{
if (files[j].ContentLength<=0)
{
continue;
}

HttpPostedFile f = files[j];
mname = Path.GetFileName(f.FileName);
long msize = f.ContentLength;
Stream s = f.InputStream; //1、Stream 类不是抽象类么?为什么可以实例化

byte [] buf=new btye[msize]; //2、如果这个文件很大。怎么办,怎么转换成流
s.Read(buf ,0 msize);
string path=Server.MapPath("FileDir/"+mname);
FileStream fs=new FileStream(path ,FileModel.OpenOrCreate ,FileAccess.Write);

fs.Write( buf ,0 ,Convert.ToInt32(msize) ); //3、长度的参数为int,如果是大文件怎么处理
.....
}

//4、其外,能用buf来存储这个文件的流,是不是说明,这个文件的流,实际上已经在服务器的内存里面了?
// 额。那岂不是脱裤子放屁。。。。 ,
// 求个思路,,能做上传文件的进度条的。。求高手给个思路。



跪求高手解说一下上面的问题。
...全文
165 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nada123456789 2012-08-22
  • 打赏
  • 举报
回复
1、里氏转换,父类可以指向子类。
2、这里的buf是buffer,缓存的意思,对于小文件,可以让缓存大小等于文件大小,对于大文件,要拆开
3、同2
4、你已经得到了请求体中的文件了,但是要filestream把他写入到文件中。
ie8weblee 2012-08-22
  • 打赏
  • 举报
回复
额,兄台,多谢!虽然你什么也没回答,但是,说的都是真理,是我肤浅了,
Conmajia 2012-08-22
  • 打赏
  • 举报
回复
//1、Stream 类不是抽象类么?为什么可以实例化
这个问题,我建议你还是回头学一遍基础语法和面向对象的类、继承等等是怎么回事。

//2、如果这个文件很大。怎么办,怎么转换成流
参考分页:http://topic.csdn.net/u/20120516/06/ae550c95-82ea-47af-8c87-690bb135171e.html

//3、长度的参数为int,如果是大文件怎么处理
同上

//4、其外,能用buf来存储这个文件的流,是不是说明,这个文件的流,实际上已经在服务器的内存里面了?
// 额。那岂不是脱裤子放屁。。。。 ,
// 求个思路,,能做上传文件的进度条的。。求高手给个思路。

建议整理下逻辑思维。没有思路,没有代码。
c2606050113 2012-08-22
  • 打赏
  • 举报
回复
1、 Stream s = f.InputStream; //1、Stream 类不是抽象类么?为什么可以实例化
f.InputStream 其实是MemoryStream

2、byte [] buf=new btye[msize]; //2、如果这个文件很大。怎么办,怎么转换成流?有多大的文件?
1T?、10T?100T?
3、fs.Write( buf ,0 ,Convert.ToInt32(msize) ); //3、长度的参数为int,如果是大文件怎么处理
同2

4、不知所云

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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