散200分问一个关于slickupload的问题

wxl_pilot 2007-02-02 10:45:03
采取的是生成临时文件到WEB服务器,同时读取流使用FTP上传到FTP服务器
现在遇到一个问题:
在WEB服务器上进行上传操作,可以上传大到400M的文件,而且内存占用率非常低
但是在其他机器上访问WEB服务器再上传的话,除非文件比较小(10M左右),不然的话上传到快100%后就一直不动了,晕死~

在思归的博客上(http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx)看到有人留言:
# re: 用ASP.NET上传大文件 2005-3-18 10:16 liuyan4794
我对那段代码改进之后,基本上可以用了
1.关于不能中途取消上传的问题:在你想取消时该页面会在提交一次,只需在HttpUploadModule.cs的context_BeginRequest中判断是否为再次提交,若是则退出
2。关于上传到最后速度很慢的问题:主要是因为每次都会读取4096 字节数据的原因,我们应该在每次读取数据时判断是否还剩下不小于4096字节可以读取
3。在以上两个问题解决之后,发现还有一会儿等待,我也不知道在什么地方浪费时间了,此时文件已经一个字节都不少的存在于服务器了,我的解决办法是在文件完全保存至服务器之后完全抛弃该页米纳,到另外的页面去保存相应的文件。
4。至大文件上传,我觉得这个好像还有点问题,我以前试着该过,没改出来。



-================
各位帮忙看看
顺便,这位留言者所说的context_BeginRequest事件中如何判断是否是再次提交?


...全文
210 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxjn 2007-05-09
  • 打赏
  • 举报
回复
up
lz_mike 2007-02-03
  • 打赏
  • 举报
回复
没遇到过
帮楼主  顶下!
xiaotupansy 2007-02-03
  • 打赏
  • 举报
回复
收藏了
ytzz 2007-02-03
  • 打赏
  • 举报
回复
帮顶。不了解
wxl_pilot 2007-02-02
  • 打赏
  • 举报
回复
http://www.liveedu.net/Krystalware.SlickUpload.rar
这个就是处理上传的代码

我试试兄台说的方法
cpp2017 2007-02-02
  • 打赏
  • 举报
回复
我没有看到源码.所以不能测试. 所以讲得也不一定正确. 在循环中可否判断. context.Response.IsClientConnected 如果中断,则取消上传. 关闭相关对象.
wxl_pilot 2007-02-02
  • 打赏
  • 举报
回复
这个问题我大概已经搞定,只是今晚没机会测试
修改前:====================
buffer = new byte[8192];
int read = stream.Read(buffer, 0, 8192);

修改后:====================

#region 解决上传到最后速度很慢的问题
if(stream.Length<8192)
{
buffer = new byte[stream.Length];
}
else
{
buffer = new byte[8192];
}
#endregion

// Read the first chunk
int read = stream.Read(buffer, 0, buffer.Length);

现在的问题是当上传了一般的时候点击了浏览器的停止按钮,这是服务器上的cpu使用率就成了100%了,而且一直降不下来,重启iis才能够正常,不知道怎么解决这种文件上传了一半被中断后的问题。

这个问题我自己到没有遇到,可能因为采用了写临时文件

不过哦具体我也不大清楚会不会碰上,所以拿出来和大家讨论讨论
cpp2017 2007-02-02
  • 打赏
  • 举报
回复
主要是因为每次都会读取4096 字节数据的原因,我们应该在每次读取数据时判断是否还剩下不小于4096字节可以读取 ======== 我觉得这个有点道理 .就像socket 如果最后一次如果取不到数据,一直要等待超时.你这有这个问题吗? 你是用它的组件还是自己写代码上传?代码能否贴出来看看?
wxl_pilot 2007-02-02
  • 打赏
  • 举报
回复
不是CPU100%
因为使用了写临时文件,CPU和内存消耗都不是很大
是在上传的时候浏览器的进度条显示100%,但是就不动了
cpp2017 2007-02-02
  • 打赏
  • 举报
回复
1.是web上传cpu100%吗?与fpt没关系吧?
wxl_pilot 2007-02-02
  • 打赏
  • 举报
回复
难道真如我兄弟所说:“天冷了,都抱老婆躲被窝里 了”?

62,074

社区成员

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

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

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

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