Wu.Country@侠缘

勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!

WebbUpload2测试版--HTTP协议下,用IE上传大文件解决方案,[附源码]

原Webb.WAVE.Controls.WebbUpload参考文章,附源代码下载,本测试版暂无源码。
http://wucountry.cnblogs.com/archive/2006/06/14/306725.html


请先参考上面的内容。
新的WebbUpload2测试版:
上传过程:
Uploading_8MB.JPG

上传完成,但文件正在COPY的时候。如果直接存放到指定目录,不另存文件,那么对于文件来说,可以省去很多时间(大概30秒)。
Upload_finished.JPG

相关说明在下载文件内。
http://files.cnblogs.com/WuCountry/WebbUploadSample2.zip

测试报告文件:
http://files.cnblogs.com/WuCountry/Load%20test%20result.zip

下载文件说明:
1、只提供了WebbUpload2的测试版,即Debug版本。建议不应该在正式项目中使用这个测试版,因为本人在测试中遇到过很多问题,由于时间关系,还没来得及修改。本人会尽快修改一些BUG并尽快发布RELEASE版本。
2、免费组件。
3、请在使用该组件时注意:使用该组件过程中,不管什么原因造成的任何损失,由使用者自己负责,本人不负任何责任。

2006-07-06附上源码

说明:
1、添加源码:http://files.cnblogs.com/WuCountry/Webb.WAVE.Controls.Upload2.zip
2、添加上传日志。
3、添加上传开始时间。
4,修改一个BUG,特殊情况下临时缓存数据没能正确的写入到Context时去。
5、修改临时内存数据流,使内存占用大大降低。
6、公开免费组件,不提供任何技术支持,不负责任何使用该组件所造成的损失。
7、算法及组件流程分析可以参考下面的文章:

   http://wucountry.cnblogs.com/archive/2005/10/12/305688.html
   http://wucountry.cnblogs.com/archive/2005/11/07/305653.html (要研究算法,请先参考本文)
   http://wucountry.cnblogs.com/archive/2005/11/07/305651.html
   http://wucountry.cnblogs.com/archive/2005/11/07/305651.html

所有内容仅供参考!

2006-09-22修改了源代码。一此前发现的一些BUG已经修改。

================================
  /\_/\                        
 (=^o^=)  Wu.Country@侠缘      
 (~)@(~)  一辈子,用心做一件事!
--------------------------------
  Happy Jimmy, keep dreaming!  
================================

posted on 2006-06-15 14:28 Wu.Country@侠缘 阅读(12288) 评论(143) 编辑 收藏

评论

#44楼[楼主] 2006-08-14 16:16 Wu.Country@侠缘      

临时目录可以自己设定,默认就是当前目录。
上面已经解释过了,因为我的项目里不想重新保存文件,所以把文件直接存在指定目录了。省了另存为这一步。
 回复 引用 查看   

#45楼 2006-08-14 21:03 wowo[未注册用户]

我改过临时路径的保存位置后还是会出现在当前目录,这个到底在哪里可以直接改的?  回复 引用   

#46楼[楼主] 2006-08-15 09:35 Wu.Country@侠缘      

UploadModule.cs
27:private static string M_TempPath= Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath,"Temp");

132:this.m_uploadProcess.TempPath = this.m_uploadInstance.m_tempPath;

自己跟踪一下就什么事情都清楚了。有源代码自己可以做很多事情的。甚至你可以自己理解一下逻辑,然后重新写一个上传组件。我就是看了SunriseUpload的源代码后自己写的。
 回复 引用 查看   

#47楼 2006-08-15 12:44 fan[未注册用户]

侠缘,你的2.0对文件上传以后名称做了修改,变成了*.rem文件,我想实现:等上传完成后,调用我刚上传的文件(比如我在服务器上对新上传的这个文件改后缀名等)。还有如果是有两个用户,我还要分清这些文件是属于那个用户的,是不是还要将文件名数据库。
能不能给一个简单的思路。谢谢
 回复 引用   

#48楼[楼主] 2006-08-15 13:55 Wu.Country@侠缘      

如果要分清是哪个用户的话,那最好是用数据库了。反正数据库只保存一个文件路径,这样也方便。要修改上传文件的扩展名也简单,在SaveAs里给定文件扩展名就行了。  回复 引用 查看   

#49楼 2006-08-15 17:09 minghe[未注册用户]

SingleUpload中
小的文件上传不运行 Button1_Click MoveTo不能起作用
大的文件才放到UploadedFiles下。
这样存放太烦恼了。
 回复 引用   

#50楼 2006-08-16 11:05 redleaf[未注册用户]

侠缘,我想请教下,如果说我要限制上传文件类型,那么该如何做比较合适。
我现在是这样想的:
在UploadProcess.cs类AnalyzeContentHeader中获取当前文件的扩展名,跟允许上传文件类型进行比较,如果不匹配,则弹出提示,并且终止上传。但是如何才能把匹配结果反映到页面上,这个问题我不知道该怎么处理了。
 回复 引用   

#51楼 2006-08-17 09:38 fan[未注册用户]

侠缘,有个问题想请教你,我想在Button1_Click中加一段代码,判断上传的文件类型,然后根据类型的不同,再调用不同的程序。
获取文件类型:string Extension = Path.GetExtension(Path.Combine(m_path, Path.GetFileName(m_file.FullPathOnClient)));

用 switch(Extension)
case “.rmvb”:
{这里是要执行的程序}比如:

//申请类的实例
code cd= new code();
cd.encoder(); 就是这里发现不执行,不知道为什么,上传成功后,却不执行上面的程序,是什么原因哪?
 回复 引用   

#52楼[楼主] 2006-08-17 10:58 Wu.Country@侠缘      

@minghe
自己试看修改代码改一下吧,我的项目里在这样要求的,所以就一直这样用了。

@redleaf
不要在UploadProcess中判断文件类型,这样就算你得到了文件类型也不能中止上传进程的,只能转向或者抛出异常。最好在客户端用JS来判断要好一些。
文件长度则用转向来判断好一些。

@fan
先判断一下Button1_Click事件有没有发生。(用一个Trace或者输出就知道了。)
再看一下case的对象是不是一至的,例如大小写,是否有点等。
 回复 引用 查看   

#53楼 2006-08-18 10:03 yuanws6456[未注册用户]

请问上传文件大小和文件格式在哪控制,
我想限制上传大小和文件格式
 回复 引用   

#54楼 2006-08-18 10:06 yuanws      

请问在哪修改上传文件大小和格式?  回复 引用 查看   

#55楼 2006-08-21 16:11 fan[未注册用户]

侠缘,我放到测试服务器上做了一个测试如下:
所有的文件都可以上传成功,数据如下:
      1M:进度条在4KB/S到24KB/S之间跳转,所需时间大概一分种
      5M:进度条在24KB/S到318KB/S之间跳转,时不时没有时间条和进度条,所需时间大概3分钟
      10M:进度条在29KB/S到58.66KB/S之间跳转,时不时没有时间条和进度条,所需时间大概5分钟
      15M:开始无时间条和进度条,5%以后进度条在28KB/S到30KB/S 之间跳转,10%以后在160KB/S到1.28MB/S之间跳转,所需时间大概6分钟
      20M:进度条在19.6KB/S到2.79MB/S之间跳转,有时候会出现12MB/S,基本保持在100KB/S左右,所需时间9分钟.
      25M:进度条在33.45KB/S到13MB/S之间跳转,所需时间大概需要15分钟
      30M:进度条在38KB/S到24MB/S之间跳转,所需时间大概需要16分钟
      35M:进度条在14KB/S到19.67MB/S之间跳转,所需时间大概需要17分钟
      40M:进度条在36KB/S到9.89MB/S 之间跳转,所需要时间大概需要18分钟
      45M:进度条在43KB/S到30.17MB/S之间跳转,所需时间大概需要20分钟
      50M:进度条在28KB/S到19.58MB/S之间跳转,所需要时间大概要23分钟

=======================
为社那马会有这种情况出现哪,速度跳跃的很大
 回复 引用   

#56楼 2006-08-23 14:46 高飞[未注册用户]

System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 55: string m_path = Path.Combine(MapPath("."),"UploadedFiles");
行 56: HtmlInputFile m_file = this.FindControl("m_file") as HtmlInputFile;
行 57: string m_filePath = Path.Combine(m_path,Path.GetFileName(m_file.PostedFile.FileName));
行 58: m_file.PostedFile.SaveAs(m_filePath);
行 59: }

什么原因呢?
 回复 引用   

#57楼 2006-08-23 14:49 高飞[未注册用户]

你的源码里面,保存的文件名怎么都是rem格式?怎么修改呢?
 回复 引用   

#58楼 2006-08-26 11:45 wongchenlung[未注册用户]

大侠,组件挺好用的,不过为什么项目中以前的html上传控件提交失败?
不能兼容以前的控件吗?
我测试你的演示程序中UploadTest.aspx页面也是同样的问题,能不能解决,如何解决?
 回复 引用   

#59楼 2006-08-28 11:07 xcy[未注册用户]

在UPLOADSTATUSHANDLER文件中,那个static string m_htmlhand =@""
那个@是什么意思啊,起什么作用呢 ,c#不是很懂,^_^
 回复 引用   

#60楼 2006-08-30 16:33 allenyz2001[未注册用户]

问一下,这个能不能在vs2005,net2.0 win2000下面运行呀,我下载后,一运行,就是“该页无法显示”找不到服务器的错误,文件上传不上去,
不知道是什么原因!大侠能帮忙弄弄吗,
 回复 引用   

#61楼 2006-09-06 01:10 mike[匿名][未注册用户]

我下载了这个组件后做了一些修改,并应用了ajax技术,你们可以去http://www.fmaker.com/up_index.htm
看看,想要源码的,可以发邮件到
wolf800@163.com
来根我要,呵呵
qq:174523323
 回复 引用   

#62楼 2006-09-09 22:56 wowo[未注册用户]

如果不选择文件直接点上传报错  回复 引用   

#63楼 2006-09-14 15:07 ptcgh[未注册用户]

公布的源代码我编译后运行上传某些文件不成功,但是使用sample里面的那个webb.wave.upload2。dll却都可以上传,不知是什么原因  回复 引用   

#64楼 2006-09-21 09:54 smallnews[未注册用户]

能请教一下各位,为什么我一用了大侠的上传组件,ASP.NET里面的HtmlInputFile控件就用不了呀?有什么办法让两者兼用吗?(是不是因为修改了WEB.CONFIG的原因呀?因为我把加入里面内容删了那控件就可以用了....)  回复 引用   

#65楼 2006-09-21 11:21 waner[未注册用户]

汗.狂郁闷的问题..
如果把button放input file前面会导致上传错误..

仔细测试了..原来是丢了input的内容,好象是传了一半,然后就传另外一个文件了..传两个只传了一个上去..另外一个在TEMP躺着..
 回复 引用   

#66楼[楼主] 2006-09-21 11:33 Wu.Country@侠缘      

很抱谦,这个组件里确实存在一些BUG。
楼上说的这个BUG我已经发现了,而且已经修改,但没有发布修改后的代码。
关于上面说到的这个BUG,只用把TEMP清理一下就行了。这个BUG还在上传很小的文件时出现(就一个文件),那是因为文件太小,没有放到到Context里,而还在临时缓存里。
要修改的代码大概在:
UploadModule.cs 的 156 行
if (!m_workRequest.IsEntireEntityBodyIsPreloaded())
把后面加一个else,并且在里面清理缓存。

对此BUG表示抱谦!
也希望其他正在使用该组件的用户能理解组件中存在BUG,以及一些还没有发现的BUG! 谢谢!

 回复 引用 查看   

#67楼 2006-09-22 16:07 GoWest[未注册用户]

UploadModule.cs 的 156 行
if (!m_workRequest.IsEntireEntityBodyIsPreloaded())
把后面加一个else,并且在里面清理缓存。
-----------------------------------
能说得清楚些?给个修正代码吧?正为这事郁闷呢
 回复 引用   

#68楼 2006-09-22 16:59 GoWest[未注册用户]

发现一个问题:上传一个小文本文件的时候(<10K),失败,但没有任何出错提示。结果是:文件已经上传到了Temp目录(默认是网站根),但没有复制到UploadedFiles里。
没有出错提示。
 回复 引用   

#69楼 2006-09-26 17:34 hilic[未注册用户]

未找到路径“D:\”的一部分。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.DirectoryNotFoundException: 未找到路径“D:\”的一部分。
虚拟主机只有访问d:\wwwroot\sitename_com目录的权限就会报上面的错
 回复 引用   

#70楼 2006-10-16 10:58 void[未注册用户]

@Wu.Country@侠缘大哥,能不能提供个最新的demo,发现用源代码生成的DLL用到demo里就出错了。3Q  回复 引用   

#71楼 2006-10-23 15:28 kkk[匿名][未注册用户]

下载源代码后打开出错,请检查  回复 引用   

#72楼 2006-10-23 22:02 FANS[未注册用户]

回GoWest:

如果我没猜错的话,清理缓存应该就是加上这句话吧。


this.ReleaseRes(application);
 回复 引用   

#73楼 2006-10-23 22:03 FANS[未注册用户]

如果不是的话,请Wu.Country@侠缘 也明示一下。。。

 回复 引用   

#74楼 2006-10-26 08:55 reddragon[未注册用户]

下载你的 WebbUploadSample2.zip 和 Webb.WAVE.Controls.Upload2.zip 怎么都无法解压呀? 望回复,有好的联接吗?  回复 引用   

#75楼 2006-10-26 11:24 ssssss[未注册用户]

fdggfgfdsdfdsf
sdfsdfsd
dsfsdfsdfsd
 回复 引用   

#76楼 2006-10-31 14:46 cza[匿名][未注册用户]

为什么在一个页面里同时加载两个上传功能时,上传的进度条会不正常呢?  回复 引用   

#77楼 2006-11-06 09:56 zhuzhu[匿名][未注册用户]

大侠,为什么上传多个文件时(mutilfilesupload.aspx),进度条显示不出来??  回复 引用   

#78楼 2006-11-06 17:23 边城浪子[匿名][未注册用户]

@Wu.Country@侠缘

我测试了在Net2.0下出现很多的错误,可以交流一下吗?我的Email是beyond923@gmail.com,希望可以得到你在2.0环境下测试的代码,谢谢。
 回复 引用   

#79楼 2006-11-06 18:52 no[未注册用户]

老大,WebbUploadStatusHandler.cs 70行
private void ReviewStatus(UploadStatus uploadStatus, StringBuilder builder, string uploadGUID)
怎么会提示 UploadStatus 缺少using?
 回复 引用   

#80楼 2006-11-08 16:41 BB[匿名][未注册用户]

win 2003 iis6.0 net 2.0
下面测试
代码很不稳定...

代码都是在这个站上找的...

一个WebbUploadSample,然后把该站上最新的Webb.WAVE.Controls.Upload2 CS代码放到APP_CODE里面,调试成功,但是很不稳定...

byte[] m_perLoadData = m_workRequest.GetPreloadedEntityBody();

m_perLoadData经常取到NULL...

什么问题呢?

我用do{}while来重复去取这些包,成功率大很多,但是不可取(会出现死循环的情况)

是不是IIS6.0或者.NET 2.0的问题呢?

 回复 引用   

#81楼 2006-12-09 16:45 leiry[未注册用户]

分析器错误信息: 模块“UploadModule”已在应用程序中,不能再次添加。

源错误:


行 82: <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="1024000" executionTimeout="900" />
行 83: <httpModules>
行 84: <add name="UploadModule" type="Webb.WAVE.Controls.Upload2.UploadModule, Webb.WAVE.Controls.Upload2"/>
行 85: </httpModules>
行 86: <httpHandlers>

 回复 引用   

#82楼 2006-12-09 16:56 leiry[未注册用户]

老大这是什么原因啊?
分析器错误信息: 模块“UploadModule”已在应用程序中,不能再次添加。

源错误:


行 82: <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="1024000" executionTimeout="900" />
行 83: <httpModules>
行 84: <add name="UploadModule" type="Webb.WAVE.Controls.Upload2.UploadModule, Webb.WAVE.Controls.Upload2"/>
行 85: </httpModules>
行 86: <httpHandlers>
 回复 引用   

#83楼 2006-12-09 21:14 4129[未注册用户]

添加了两次,可能是父子目录都添加了。  回复 引用   

#84楼 2006-12-10 22:12 leiry[未注册用户]

老大,谢谢指点 ,我的项目 就一个Web.config文件呀, 今天晚上居然 没提示错误了,奇怪,我试了好几天了都出错的。
现在的问题 进度条对话框总是提示错误,但也能传送文件成功。

行:19
字符:1
错误:缺少对象
代码:0
url:http://localhost/NewqyBKWeb/Users/UploadStatusBar.ashx?UploadGUID=d705fde6-c96f-4da8-877e-f32072485169
是否继续在该页面运行
 回复 引用   

#85楼[楼主] 2006-12-12 16:04 Wu.Country@侠缘      

这个问题我经常遇到,大多数是路径错误,或者进度条的读取文件错误。
进度条的跟踪有点麻烦,希望你能细心的跟踪一下,还是很容易发现问题的。
 回复 引用 查看   

#86楼 2006-12-13 10:36 xqf[未注册用户]

web.config如下:
<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
上传文件乱码?请问如何解决,以下办法都试过,都没解决问题。

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="gb2312"/>
设置成这样,页面乱码,并且脚本错误。
 回复 引用   

#87楼[楼主] 2006-12-13 13:44 Wu.Country@侠缘      

上传的是什么?
是文件名乱码还是文件内容?
如果是文件内容出现乱码,那可能文件在上传的时候损坏了。
如果是文件名出现乱码,请用Convert类进行转化。
例如,某个对象是string类型,还是用Convert.ToString()转化一下,可能会好。
如果是页面出现乱码,那就在页面里加一个ContextType就行了。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
修改相应的chartset就行了。
 回复 引用 查看   

#88楼 2006-12-13 17:13 leiry[未注册用户]

我没怎么弄它,现在居然没问题了,太高兴了,不过好奇怪。我一点都没修改,怎么突然就好了呢  回复 引用   

#89楼 2006-12-14 10:55 jiej007[未注册用户]

Wu.Country@侠缘,谢谢您的无私精神啊!!!
我用了您的2.0版本
在客户端加上文件类型判断的js验证以后进度调就出不来了
所以我最后只能取消客户端验证,请问各位是否有此问题?
 回复 引用   

#90楼 2006-12-18 11:51 leiry [未注册用户]

老大,求救,前几天 在你的指点下,我一个页面用的正常了,现在在同一个目录下的另一个页面 用同样的代码 ,居然执行 不行。 我调试 发现是 组件源代码的 webbupload2.cs 文件的 m_uploadFilesContent 的内容 只有这么一点 ----- @"H:\D\My Documents\服务器端口大全.txt" ,跟正常的比 ,缺少了一部分内容

什么原因呀,两个页面(a.aspx ,b.aspx) 调用代码都一样,为什么 一个出错,另一个正常。应该没有路径问题吧,(a.aspx ,b.aspx)一样的位置 相当于复制一个文件调用一样。
 回复 引用   

#91楼 2006-12-18 11:57 leiry [未注册用户]

m_uploadFilesContent 的内容 是下面这样的:

"Content-Type: text/plain; filename=\"H:\\D\\My Documents\\服务器端口大全.txt\"; filename_server=\"H:\\D\\My Documents\\NewqyBKword\\NewqyBKWeb\\3e1a657b-4eff-4f7c-99e9-ad9c3f17c3ad.rem\""
 回复 引用   

#92楼 2006-12-18 11:59 leiry [未注册用户]

上面是正常的时候,为什么 复制一个页面后,就结果不一样呢,少了很少呢  回复 引用   

#93楼 2006-12-18 16:48 小牛哥[匿名][未注册用户]

对侠缘表示赞赏,我以前一直用neatupload:),我已经下载了你的代码,看看能否用于项目中。  回复 引用   

#94楼 2006-12-21 11:00 小牛哥[匿名]

代码质量不是很高,友好性也待加强,不过思路比较清晰,修改起来还不是很费劲。等修改好了,再交流:)  回复 引用   

#95楼 2007-01-04 13:10 aoyuan[未注册用户]

请教各位大侠:如何让一个选择的对话框选择多个文件呢?  回复 引用   

#96楼 2007-01-05 11:36 aoyuan[未注册用户]

private void Button1_Load(object sender, System.EventArgs e)
{
Button m_button = sender as button;
WebbUpload2 m_upload = new WebbUpload2();
m_upload.RegisterProgressBar(m_button,false);
}
上面这个怎么用VB。NET来表示呢?
好像VB。NET里面没有dim m_button as button=sender as button的写法,但又要给它传递参数,随便给各值吧又出现下面的错误:

C:\Inetpub\wwwroot\FileUpLoad\MultiUpload.aspx.vb(48): 重载决策失败,原因是没有可访问的“RegisterProgressBar”可以用这些参数调用:
'Public Sub RegisterProgressBar(uploadButton As System.Web.UI.WebControls.LinkButton, causesValidation As Boolean)': 类型“String”的值无法转换为“System.Web.UI.WebControls.LinkButton”。
'Public Sub RegisterProgressBar(uploadButton As System.Web.UI.WebControls.Button, causesValidation As Boolean)': 类型“String”的值无法转换为“System.Web.UI.WebControls.Button”。

请教各位高手怎么解决呢?在此感激不尽!谢谢
 回复 引用   

#97楼 2007-01-05 11:46 aoyuan[未注册用户]

对不起!不是上面的原因

C# 环境 WebbUpload2 m_upload = new WebbUpload2(); 可以进入Webbupload2()里面执行

但是

VB.NET 环境 dim m_upload as WebbUpload2=new WebbUpload2却不能进入Webbupload2()里面执行

为什么呢?
 回复 引用   

#98楼 2007-01-25 14:13 abaha[未注册用户]

真是好人!正需要大文件上传  回复 引用   

#99楼 2007-01-28 12:41 hhh[未注册用户]

楼主什么时候可以出NEt2.0下的呢?期待中……  回复 引用   

#100楼 2007-01-29 14:30 abaha[未注册用户]

上传一个204M的文件,上传速度在25KB/S,太慢了点.不知道大家的情况怎么样?  回复 引用   

#101楼 2007-02-06 13:23 semye      

很感谢楼主在我BLOG对我的提问给出那么详细的回复!  回复 引用 查看   

#102楼 2007-02-06 17:05 zz[未注册用户]

请问如何把上传的界面中的 英文改成 中文?
我在WebbUpload.js中修改编译后无效,谢谢
 回复 引用   

#103楼 2007-02-07 09:28 zz[未注册用户]

已经知道了,在UploadStatusHandler.cs里就可以改了,谢谢楼主的控件  回复 引用   

#104楼 2007-02-24 22:09 JesseZhao      

呵呵,好东西  回复 引用 查看   

#105楼 2007-03-07 08:48 codetian[未注册用户]

移除这个引用"Microsoft.Web.UI.WebControls"
可是我在vs2005下运行出现了
“/WebbUploadSample”应用程序中的服务器错误。“
有时还出现:上传的进度条闪一下,就没有了,让后就出现了”该页无法显示“
在线等!
 回复 引用   

#106楼 2007-03-07 09:38 codetian[未注册用户]

我调试成功了!
可是什么上传的文件的名字都变成.rem呀
怎么让它不改变扩展名呀?
 回复 引用   

#107楼 2007-03-07 16:02 hhh[未注册用户]

已经成功运用到VS.net2005中,测试有点问题,在本地网络中测试IE下的上传速度200Kb/s左右,FireFox下测试可以达到4.5M/s,不知道是否我转成Vs.net2005的时候有问题。vs.net2003下俺没测试过。  回复 引用   

#108楼 2007-03-13 17:03 codetian[未注册用户]

我在vs2005下测试成功  回复 引用   

#109楼 2007-03-30 13:17 高海东      

为什么在模态窗口中上传不能那  回复 引用 查看   

#110楼 2007-04-10 14:25 123[未注册用户]

可是我在vs2005下运行出现了 :上传的进度条闪一下,就没有了,让后就出现了”该页无法显示“

求解决?
 回复 引用   

#111楼 2007-04-28 09:38 oxsoft.cn[未注册用户]

可是我在vs2005下运行出现了 :上传的进度条闪一下,就没有了,让后就出现了”该页无法显示“

求解决?










----------------

一样的问题!!!!!!!!!!!!!!!
 回复 引用   

#112楼 2007-04-30 11:25 gby[未注册用户]

您好:我在web.config里面设置:
<appSettings>
<add key="BufferSize" value="128"/>
<add key="MaxRequestSize" value="1024000"/>
<add key="MaxRequestUser" value="10"/>
<add key="TempPath" value="Temp"/>
</appSettings>
其他的设置也设置好,我的程序文件名字是officea,我上传的小文件按说应该在officea/temp下才对,可是我的却是在offieca下,请问是什么原因?
谢谢
 回复 引用   

#113楼 2007-05-10 17:08 动力火锅[未注册用户]

哪位能提供VS2005下的测试代码?  回复 引用   

#114楼[楼主] 2007-05-10 22:56 Wu.Country@侠缘      

好长时间没管这个控件,最近我的同事也在他的项目中使用这个控件,在.Net2,0下可以直接运行该控件,不用重新编译。
至于在2005下不能通过编译的情况我们暂时还没有时间去尝试解决。
解决后一定在该博客上公开。
 回复 引用 查看   

#115楼 2007-05-11 19:24 CHENGDU FARMER[未注册用户]

程序集生成 -- 引用的程序集“Webb.WAVE.Controls.Upload”是本地化附属程序集
是怎么回事情呢?
而且我在一个项目有进度条,但在另一个项目中却出现应用程序中的服务错误,而不是进度条.
这又是怎么回事情呢??
等待中
 回复 引用   

#116楼 2007-05-16 14:00 倦天涯[未注册用户]

为什么没有选中文件时,会报错........提示未将对象引用到实例也就是httpmodule错误  回复 引用   

#117楼 2007-05-16 14:01 倦天涯[未注册用户]

System.NullReferenceException: 未将对象引用设置到对象的实例  回复 引用   

#118楼 2007-06-07 16:18 acer[未注册用户]

你的控件在vs2005如何使用,请给出详细配置
System.NullReferenceException: 未将对象引用设置到对象的实例
永远显示这个错误
 回复 引用   

#119楼 2007-06-07 16:20 acer[未注册用户]

@codetian
能不能告诉大家怎们配的
 回复 引用   

#120楼 2007-06-10 04:40 msii.cn[未注册用户]

两个问题:
1、上传时,进度条闪动有问题;就是跳一个百分比,会扫一下。本机传看不出来,上传到网上时比较明显。
2、上传一个mp3文件,上传组件改成*.rem,然后我再改回*.mp3时,就不能播放这个mp3文件了。。
 回复 引用   

#121楼 2007-06-21 09:27 Victor[未注册用户]

VS2005
System.NullReferenceException: 未将对象引用设置到对象的实例
永远显示这个错误

我也快被这个问题避风了 有知道是怎么回事的么?
请指教 指教
 回复 引用   

#122楼 2007-06-21 10:00 Victor[未注册用户]

貌似不能在VS2005下面 直接调试
要去IIS里面
 回复 引用   

#123楼 2007-07-08 14:42 mwtcz[未注册用户]

进度条一闪就没有的问题,我这里也发现了,后来查找原因,发现应用程序池如果设置了多个web园的话就会出这个问题,改回一个就可以了,不知道其他兄弟是不是这样。


System.NullReferenceException: 未将对象引用设置到对象的实例 的问题我这里也有,后来发现是使用webb后,再用原来的上传方式就出错。我就在WebbHttpModule里加了点代码:

HttpApplication m_application = sender as HttpApplication;
HttpWorkerRequest m_workRequest = GetWorkerRequest();
//这是新加的
string m_action = m_application.Request.QueryString["fileflag"];
if (m_action == "pic") return;

这样 在 xxx.aspx?fileflag=pic 这个页面里,就还可以用原来的方式上传文件。
 回复 引用   

#124楼 2007-07-08 15:47 abc[未注册用户]

楼主能不能放一个最终的版本,现在搞不清楚到底有几个bug。  回复 引用   

#125楼 2007-07-16 00:53 happyhcs[未注册用户]

感谢楼主的精神,我也在研究你的代码,开源伟大!  回复 引用   

#126楼 2007-07-24 23:17 newnan[未注册用户]

请问一下:这个版本怎样做才可以不破坏HttpinpuFile上传,上一个版本的EnableWebbUpload(false)好像没有了。

因为我只想在某个页面使用它,其他页面不改变?
 回复 引用   

#127楼 2007-08-23 16:12 傻子[未注册用户]

在Iframe 引用的网页上无法使用!  回复 引用   

#128楼 2007-09-11 15:55 王云鹏[未注册用户]

Vs2005 怎么使用呀。总是出错
最好有vb的代码
 回复 引用   

#129楼 2007-09-28 16:58 王云鹏[未注册用户]

谁有在asp.net2.0中可以使用的组建。谢谢搂主和各位朋友。
我的qq:516963056
email:wdpchzyl@vip.sohu.com
再次感谢
 回复 引用   

#130楼 2007-10-05 10:16 kinghot[未注册用户]

System.NullReferenceException: 未将对象引用设置到对象的实例 的问题我这里也有.
我调试跟踪发现是WebbUpload2.cs里的函数:
public UploadFile GetUploadFile(string i_fieldName)的第一句:
if(HttpContext.Current.Request[i_fieldName]==null)return null;
的问题。在楼主给的实例里,
HttpContext.Current.Request[i_fieldName]为null。从而导致后面的语句调用(调用UploadFile的成员)都有问题。
但我不知道如何改动?请楼主解答一下。我用的是VS2005 sp1.
文件可以上传成功。只是上传成功后就会出现未将对象引用设置到对象的实例的问题。
 回复 引用   

#131楼 2007-10-05 10:23 kinghot[未注册用户]

还有上传成功是在调试的情况下的,不调试运行上传就不成功了,就会出现未将对象引用设置到对象的实例的问题  回复 引用   

#132楼 2007-10-09 09:22 zhuzi[未注册用户]

上传中文名文件时,出现乱码,经过了编码转换后基本上可以获取到原来所上传的文件名.具体的操作如下:
System.Text.Encoding UTF8 = System.Text.Encoding.UTF8;
System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
string filename = UTF8.GetString(GB2312.GetBytes(Path.GetFileName(m_file.ClientFullPathName)));

但是当遇到长文件名时,有时会出现"?",比如上传"信息分析511-重庆市信息产业投入产出分析.doc "时,通过以上方法获取的文件名变成了"信息分析511-重庆市信息产业投入产出分??doc",不知哪位对中文文件名上传有何好的处理方法,请赐教,谢谢!!!
 回复 引用   

#133楼 2007-10-09 11:42 zhuzi[未注册用户]

谢谢"DY_FS"兄弟的解决方法.
将源文件的WebbRequestStream.cs文件中180行附近this.m_contentTextBody.AddRange(UTF8").GetBytes(sb.ToString().ToCharArray())); 改成为
System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
this.m_contentTextBody.AddRange(GB2312.GetBytes(sb.ToString().ToCharArray()));
即可解决上传中文文件名,通过m_file.ClientFullPathName 获取文件名时出现"?"的问题.
 回复 引用   

#134楼 2007-10-10 18:11 yang99301[未注册用户]

我已经能正确运行下载的例子,但是我修改了SingleFileUpload.aspx.cs里面的代码(甚至把所有代码都删除),结果运行的情况(单个文件上传)没有任何的变化。请大哥大姐帮帮我!  回复 引用   

#135楼 2008-05-20 17:22 marxTen      

System.NullReferenceException: 未将对象引用设置到对象的实例这个问题我想大部分是因为没有在IIS里面运行的原因~
我开始是在文件系统中调试程序,发现怎么都不能获取数据,HttpContext.Current.Requerst.BinaryRead()里面的数据都是空的,后来发现需要在IIS里面运行才能得到数据~
也就是说首先页面要在IIS里面建立虚拟目录~然后在虚拟目录里面浏览页面,在用.NET 跟踪aspnet_wp.exe来调试才能正确获取数据~
 回复 引用 查看   

#136楼 2008-08-07 09:47 weixing[未注册用户]

我是菜鸟,想运行测试,但出现错误根本运行不了
我的系统是winxp3+vs2005,请版主帮忙我弄不明白了

Parser Error Message: Could not load file or assembly 'Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error:


Line 1: <%@ Control Language="c#" AutoEventWireup="false" Codebehind="Inc_Botton.ascx.cs" Inherits="Webb.WAVE.inc_botton" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
Line 2: <%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
Line 3: <script language=javascript>
Line 4: function WavePageChangeTitle(){


Source File: /upfiletest/Inc_Botton.ascx Line: 2

Assembly Load Trace: The following information can be helpful to determine why the assembly 'Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.
 回复 引用   

#137楼 2009-06-29 14:05 somtv      

@侠缘大大:

最近才下载了你的,WebbUpload2版的源码,但无论我是在VS2005还是2008中使用时,都是出现:
System.NullReferenceException: 未将对象引用设置到对象

不知道该如何解决,还请帮帮忙...

谢谢
 回复 引用 查看   

#138楼 2009-07-08 17:44 不见不散      

先收藏着。  回复 引用 查看   

#139楼 2009-10-26 09:03 masterkiller[未注册用户]

这个是不是所有的客户端都必须安装.net framework 的啊 我调试了一下 发现在安装了 .net framework 的机器上能正常使用 但是在未安装.net framework 的机器上 就运行不了了 试了很多部机器 都是一样的  回复 引用   

#140楼 2010-07-14 15:16 jolboy      

在IIS7下 上传进度条不起作用!不知道什么原因唉!
IIS6下没有问题。

但是不管是IIS7或者IIS6下,超出设定的上传上限,都没有弹出提示,我看到UploadModule.cs代码中是有判断的,上传的文件大小超过限定大小会提示,但是最终是直接跳到找不到页面了。错误都捕捉不到!
 回复 引用 查看   

#141楼 2011-02-16 14:40 地狱狼cc      

引用jolboy:
在IIS7下 上传进度条不起作用!不知道什么原因唉!
IIS6下没有问题。

但是不管是IIS7或者IIS6下,超出设定的上传上限,都没有弹出提示,我看到UploadModule.cs代码中是有判断的,上传的文件大小超过限定大小会提示,但是最终是直接跳到找不到页面了。错误都捕捉不到!



以上问题我也发现了,不只是为何,正在苦恼中....  回复 引用 查看   

#142楼 2011-04-22 10:07 子夜      

运行环境:IIS7 + .netFramework4.0
错误:
堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
Webb.WAVE.Controls.Upload.WebbHttpModule.WebbUpload_BeginRequest(Object sender, EventArgs e) in F:\CompanyWorks\平台整合项目\程序\NetFramework4\ESNetControls\WebbUpload\WebbUploadModule.cs:189
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +266

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1

///////////////////////////
运行调试是这个函数的返回值为空
HttpWorkerRequest.GetPreloadedEntityBody()
 回复 引用 查看   

#143楼 2011-06-01 18:20 不见不散      

windows server 2008 + IIS 7/ IIS 7.5 改进版
http://www.ljf.cn/archives/299.aspx
越来越佩服侠缘提供的程序的强大和适应性了。呵呵。
 回复 引用 查看   

评论共2页: 上一页 1 2