庆祝自己搞定Asp.net分段上传下载

GXY2005 2006-12-27 04:53:11
所用主要函数:
上传:分块写入Http输出流Response.BinaryWrite

下载:分块读取客户端请求数据request.ReadEntityBody(buffer, count)
...全文
625 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lipton888 2006-12-29
  • 打赏
  • 举报
回复
学习
hm8030 2006-12-29
  • 打赏
  • 举报
回复
mark!!
bitpolar 2006-12-29
  • 打赏
  • 举报
回复
我写的的确是winform连接webservice的情况,只要客户端处理得当,可以支持断点续传.
没有试过webform.
GXY2005 2006-12-29
  • 打赏
  • 举报
回复
突然发现没那么简单,Httpmodule中的变量,就是文件长度等就是取不出,调试可见,用Application
也不行!星星月亮们近来拉偶一把!
GXY2005 2006-12-29
  • 打赏
  • 举报
回复
可用Ajax进行刷新进度
结贴!
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
lizhizhe2000(彬彬) ( ) 信誉:100 Blog 2006-12-28 11:53:58 得分: 0

那才散20分!
------------------------
我认为技术无价,没分也应该积极探讨!
那些无聊的话题我才给高分!

lizhizhe2000 2006-12-28
  • 打赏
  • 举报
回复
那才散20分!
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
我在想是否这个原因:比如在我们上传一个超大文件,提交后此时本页和服务器通讯处于繁忙中,好象浏览器在服务器返回前也是失效状态中,无法及时传递进度数据,也就无法及时更新进度,而脚本直接从服务器可以取得及时数据?为什么脚本就可以及时和服务器通讯?多线程吗?
bill024 2006-12-28
  • 打赏
  • 举报
回复
恭喜
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
分块上传下载是什么意思呢?学习!!
-----------------------
就是支持大文件上传下载,默认的只有2兆,超过出错!
xbugirl 2006-12-28
  • 打赏
  • 举报
回复
学习下,说不定会用到. mark 顺手接分.
j9988 2006-12-28
  • 打赏
  • 举报
回复
mark
DADA_dotnet 2006-12-28
  • 打赏
  • 举报
回复
分块上传下载是什么意思呢?学习!!
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
进来个人吗,留个名也行啊!
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
楼上的 老兄文件的总长,当前的长度当然可以取到,如果在Winform 下问题自然简单.
比如我上传分块代码在Httpmodule中,文件总长,当前的长度变量都在这个Httpmodule类中,可是偶写了个多线程去读这些变量总是空的,所以怀疑需要用脚本去服务器取数据然后显示在浏览器中,那位明白人近来!~_~
gary1027 2006-12-28
  • 打赏
  • 举报
回复
贴代码出来,给大家共享下
GXY2005 2006-12-28
  • 打赏
  • 举报
回复
经过测试证实Ajax可以作到更新上传中停止响应的浏览器的页面数据,从而达到显示上传进度的目的.
pshy 2006-12-28
  • 打赏
  • 举报
回复
有分就接.......
bitpolar 2006-12-27
  • 打赏
  • 举报
回复
呵呵 进度条也简单 先取一下文件的长度即可

[WebMethod(EnableSession = true, Description = "下载升级文件")]
public string DownloadByteFile(string FileName, long ByteOffset, long ByteLength)
{
try
{
string FilePath = Server.MapPath(DownLoadPath) + "\\" + FileName;
FileStream fstream = new FileStream(FilePath, FileMode.Open);
byte[] farray = new byte[ByteLength];
fstream.Position = ByteOffset;
fstream.Read(farray, 0, (int)ByteLength);
fstream.Close();

return Convert.ToBase64String(farray);
}
catch (Exception)
{
return string.Empty;
}
}
GXY2005 2006-12-27
  • 打赏
  • 举报
回复
就是进度显示问题比较麻烦,有那位介绍下自己的进度条怎么弄最好?能否不用客户端脚本只用后台代码搞定??
加载更多回复(2)

110,534

社区成员

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

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

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