散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事件中如何判断是否是再次提交?


...全文
238 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
  • 打赏
  • 举报
回复
难道真如我兄弟所说:“天冷了,都抱老婆躲被窝里 了”?
内容概要:本文研究了基于Q-Learning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,旨在提升其在复杂海洋环境下的控制性能。通过建立AUV的动力学模型,将Q-Learning算法与传统PID控制相结合,实现控制器参数的在线自适应优化,有效增强了系统的响应速度、稳定性和抗干扰能力。研究采用Matlab进行仿真验证,结果表明该方法在轨迹跟踪与姿态控制方面具有优越表现,为水下机器人智能控制提供了可行的技术路径与理论支持。; 适合人群:具备自动控制理论、强化学习或水下机器人建模背景,从事相关科研工作的研究人员、高校研究生及工程技术开发者。; 使用场景及目标:①应用于高精度、强鲁棒性的水下机器人运动控制系统设计;②开展智能PID控制器在非线性、时变系统中的参数自整定研究;③作为强化学习在复杂工业控制场景中落地的典型案例参考,推动算法与工程实践融合。; 阅读建议:建议结合提供的Matlab代码进行仿真实验,重点剖析Q-Learning与PID融合的架构设计、奖励函数设定及参数收敛过程,可进一步拓展至与其他智能优化算法(如DQN、Actor-Critic)的对比研究,深化对自适应控制机制的理解。
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 Matlab 被视为一种功能卓越的编程平台,特别是在数值运算和数据分析方面展现出广泛的应用价值。在应对多元非线性回归的挑战时,Matlab 拥备多种工具和函数,支持用户对复杂的数据进行构建模型和适配。本指南将重点阐释在 Matlab 环境下如何执行多元非线性回归分析。 我们需要掌握三种关键的回归指令: 1. `polyfit(x,y,n)`:此函数适用于拟合一元幂函数,能够导出一个多项式模型。例如,若知晓数据呈现二次函数形态,可选择`n=2`来适配一个二次曲线。 2. `regress(y,x)`:这是一个多元线性回归指令,能够处理多个自变量对因变量的影响。即便数据并非完全呈现线性特征,该函数也能提供一个线性近似。 3. `nlinfit(x,y,’fun’,beta0)`:这是最为通用的非线性回归指令,适用于适配任何类型的函数,无论是一元或多元,前提是用户能够定义函数形式(`fun`参数)。 回归分析的核心在于寻找一组最优的系数,使得模型能够最恰当地描述数据。这通常涉及选择一个合适的函数形态,随后通过最小化误差平方和来估算系数。在Matlab中,`regress`指令主要用于处理线性模型,而`nlinfit`则处理更为复杂的非线性模型。 对于多元线性回归模型,我们可以用如下形式进行表述: \[ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_px_p + \epsilon \] 其中,\( y \)是因变量,\( x_1, x_2, \ldots, x_p \)是自变量,\( \beta_0, \beta_1, ...
内容概要:本文系统阐述了基于BP神经网络的语音特征信号分类方法,并提供了完整的Matlab代码实现。研究围绕语音信号的数据预处理、特征提取、神经网络结构设计、模型训练与分类测试等核心环节展开,详细展示了BP神经网络在语音识别任务中的应用流程。通过构建多层前馈网络模型,利用误差反向传播算法优化权重,实现了对不同语音类别特征的高效分类,具有较强的工程实践价值和技术可复现性。; 适合人群:具备信号处理与机器学习基础知识,熟悉Matlab编程语言,从事语音识别、模式识别、人工智能等相关领域研究的学生及科研人员;特别适用于开展课程设计、毕业设计或科研项目的初级与中级研究人员。; 使用场景及目标:①深入理解BP神经网络的基本原理及其在语音信号分类中的具体实现过程;②掌握Matlab环境下语音信号特征提取与分类模型构建的全流程技术;③为语音识别、人机交互、智能听觉系统等实际应用场景提供可靠的算法基础与代码参考。; 阅读建议:建议读者结合所提供的Matlab代码逐行分析其实现逻辑,重点关注数据输入格式、网络参数初始化、训练迭代过程及分类性能评估;可通过调整隐含层节点数、学习率、激活函数等超参数,观察模型收敛性与分类准确率的变化,从而深化对神经网络调参策略的理解。

62,272

社区成员

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

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

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

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