随笔 - 11, 文章 - 0, 评论 - 82, 引用 - 11
数据加载中……

最新评论

共2页: 1 2 下一页 
能不能发给我一份,最近为这个烦呢,谢谢!
对这个很感兴趣!谢谢!
--引用--------------------------------------------------
John Chen: 调试提示出错:“无法在web服务器上启动调试。服务器因语法无效而未能处理调试请求。”
环境:win2003 vs2005 sp1
为什么会这样的了?

--------------------------------------------------------
已经新建了临时文件,虚拟目录的了
调试提示出错:“无法在web服务器上启动调试。服务器因语法无效而未能处理调试请求。”
环境:win2003 vs2005 sp1
为什么会这样的了?
helenes@126.com
非常感谢 这两天整愁着这个!
测试能不过,环境:winxp+sp2 vs2005 sp1 ,vs2005自带虚拟IIS IE7
在上载文件时,在: byte[] arrBuffer = request.GetPreloadedEntityBody();
这里的arrBuffer始终返回null
pccai1983@hotmail.com
多谢。。。
wzhelp@163.com楼主辛苦了 ,给我一份吧
一直在找类似的,就是没有找到,楼主也给俺传一份吧
www_sw@163.com
非常感谢
楼主,我测试时,如果设了断点的调试着让它跑,可以正确的上传,可如果不设断点真接运行,有时可以,有时不可以,又不显示什么错误,如果发布后,又可以正确的上传,不知有没有遇到过类似情况
2.0的源码在哪?我也没找到哎~希望楼主帮忙
wwwwhhhhxxxx@sina.com 找了好长时间了,给俺也传一份吧。非常感谢谢谢。
“通过改变Asp.NET页面对象的属性值来向页面传送是比较麻烦的”这句话不是很明白,我们平时传送是通过改变对象属性?希望指点
--引用--------------------------------------------------
fqmail: 编译运行成功,首页js报错:document.all.UploadID.value 为空或不是对象
然后直接:Internet Explorer 无法显示该网页

测试环境:win2003 vs2005sp1 ie7.0
--------------------------------------------------------
IE7下没有测试,但我在IE6下测试没问题,请下载最新代码再试一下.最初的版本中由于有一个测试的代码没有注释掉,导致页面没有注册UploadID(用于保证会话标识)控件,所以会提示这个错误,我在5月29日已更新了代码.
和SlickUpload代码差不多~~~~~~
编译运行成功,首页js报错:document.all.UploadID.value 为空或不是对象
然后直接:Internet Explorer 无法显示该网页

测试环境:win2003 vs2005sp1 ie7.0
.@marxTen
对大文件大小超过指定大小时,如果用户要显示自定义错误,而又简单的避免Asp.NET显的错误,可以在封装数据时,不保存临时文件,然后,将多余的文件内容去掉后返回给页面,在返回前,可以用如下方式在缓存中加一个变量.
HttpContext.Current.Cache.Add(context.GUID, context, null, DateTime.Now.AddDays(10), TimeSpan.Zero, CacheItemPriority.High, null);
这样你就可以在页面中处理这个错误了.

不过,这样虽然处理了自定义错误,但没有改变客户端上传的内容,所以也没有节约到资源,因为如果你提前断开连接,那客户端就不能接收到响.
你可以试试
--引用--------------------------------------------------
hxling: 程序楼主没有测试好吧!上传几十M的文件就出错
--------------------------------------------------------
对不起了啊!是一个测试语句没有去掉啊!!
应当把
if (!IsUploadRequest(app.Request)) return; //不是文件上传,则退出
return;
这后面的这个return 去掉.
--引用--------------------------------------------------
marxTen: 在IIS里面测试了下,发现点击上传按钮以后,弹出了进度条页面,然后进度条页面就消失了,文件也没有上传~
不知道博主测试的时候有没有遇到这样的问题,我是xp+vs2005sp1~
--------------------------------------------------------
我测试时,进度窗口必须要手工关闭呢?
re: 在地震中乱谈 巴山 2008-05-28 19:55  
我把错改了,谢谢了哟.
--引用--------------------------------------------------
marxTen: 有.NET 2.0的源代码吗?如果有请发给我一份,ftkhunter@yahoo.com.cn谢谢了~
最近也在做大文件上传的组件~想参考下博主的程序。
--------------------------------------------------------

源码自己下三,你还没找到啊?在我第六篇不是专门提供了下载吗?
程序楼主没有测试好吧!上传几十M的文件就出错
在IIS里面测试了下,发现点击上传按钮以后,弹出了进度条页面,然后进度条页面就消失了,文件也没有上传~
不知道博主测试的时候有没有遇到这样的问题,我是xp+vs2005sp1~
wind-23-fengfeng@163.com 辛苦了,多谢~
呵呵,刚看到原来博主发了源码~
下了看了下,有一个问题~
private void context_BeginRequest(object sender, EventArgs e)
{

HttpApplication app = sender as HttpApplication;
HttpWorkerRequest request = GetWorkerRequest(app.Context);

if (!IsUploadRequest(app.Request)) return; //不是文件上传,则退出
return;
为什么要再return下?
还有,我通过cookie,把自定义错误返回,比如:文件类型错误,大小错误~
因为在application_beginrequest里面,页面逻辑还没有进行处理,SESSION什么的都为NULL,所以我用下面的方法:
if (m_totalRequsetSize < this.User_MaxSize)
{
if (m_totalRequsetSize > this.m_uploadInstance.m_MaxSize)
{
HttpCookie addMusicCookie = new HttpCookie("addMusicResult");
addMusicCookie["addMusicResult"] = "2";
addMusicCookie.Path = "/user/music/";
addMusicCookie.Expires = DateTime.Now.AddHours(2);
HttpContext.Current.Response.Cookies.Add(addMusicCookie);
return;
//throw new Exception("Out of upload file size.");
//HttpContext.Current.Response.Write("<script>alert('文件超过默认上传大小5M~')</script>");

}
}
else
{
try
{
HttpCookie addMusicCookie = new HttpCookie("addMusicResult");
addMusicCookie["addMusicResult"] = "0";
addMusicCookie.Path = "/user/music/";
addMusicCookie.Expires = DateTime.Now.AddHours(2);
HttpContext.Current.Response.Cookies.Add(addMusicCookie);
return;
}
catch
{
return;
}
//HttpContext.Current.Request.QueryString.Add("r", "0");
//return;
}
返回自定义错误。
然后再页面上通过读取cookie来弹出错误,并且同时还需要删除掉这个cookie~
不知道博主有没有比较好的办法~

另外,源程序里面的Default.aspx中无法找到window.showModelessDialog('ProgressBar.aspx?UploadID='+document.all.UploadID.value,window,'status:no;dialogWidth:500px;dialogHeight:250px;center:yes;help:no;');
里面的document.all.UploadID.value,发现你页面上也没有定义~
有.NET 2.0的源代码吗?如果有请发给我一份,ftkhunter@yahoo.com.cn谢谢了~
最近也在做大文件上传的组件~想参考下博主的程序。
re: 在地震中乱谈 zzticzh2 2008-05-26 12:07  
已批阅 ^_^ 指出3个小小错误 1、“没太难看" 2、”那我就看到的“ 3、”社会f运转“
--引用--------------------------------------------------
Bob123: <a href="http://www.ajaxuploader.com/" target="_new" rel="nofollow">http://www.ajaxuploader.com/</a>
这个是我见过的最好的上传文件的东东.
厉害之处不是什么界面好不好看,
而是下载例子测试后, 才发现所有东西都已经被封装好了.
就一个dll一个控件 , 完全不需要编写代码去处理细节.
不过这个东西好像是新的, 暂时没有找到破解版.
楼主有空可以去研究一下, 做个类似的东西, 那真的是作福万民啊!

--------------------------------------------------------
这个东东我看了,也是用的httpModule方式,只不过用AJAX封装了,实现了局部更新,要用AJAX封将我这组件,那也没问题,我这里只是关注于解决大文件上传,至少其界面效果,那都是时间的问题,大家有时间了可以扩展一下的啊!我现在没有项目再使用了,所以也没有进一步完善的动力了!嘿嘿!
不过我看他的代码里用到HttpApplication.AddOnBeginRequestAsync实现了异步方式处理上传文件,这可能会对提高系统的并发度有好处.
http://www.ajaxuploader.com/
这个是我见过的最好的上传文件的东东.
厉害之处不是什么界面好不好看,
而是下载例子测试后, 才发现所有东西都已经被封装好了.
就一个dll一个控件 , 完全不需要编写代码去处理细节.
不过这个东西好像是新的, 暂时没有找到破解版.
楼主有空可以去研究一下, 做个类似的东西, 那真的是作福万民啊!
不建议用这种方式显示进度,说真的:太丑了
--引用--------------------------------------------------
dudu: 现在这样连续发三篇好吗?
--------------------------------------------------------
没什么吧,这个使用说明以前就有部分,所以这次也就一起发了。
我觉得所谓影响的这点效率,服务器应该能承受得起。
多少要影响一点点效率了,不过比起增加的用户体验来说,这点效率损失还是值得的。
隐形防盗网 隐形防盗网 2008-05-23 22:05  
这样会不会影响效率???
现在这样连续发三篇好吗?
--引用--------------------------------------------------
contentType.GetField("_completed", flags1).SetValue(httpRawUploadedContent, true);
--------------------------------------------------------
这里仅仅加上这个好还不行的.必须要设置类HttpRawUploadedContent实例的_data和_length属性.不然页面就不能正确获取数据.
--引用--------------------------------------------------
烟丝: 用户上传到一半的时间,刷新页面会造成上传中的文件没有释放
--------------------------------------------------------

文件会在DataReader类的Dispose方法中释放,但是由于刷新页面时,前面的文件还没来得及释放,后面就开始写文件了,所以会出错,由于组件是用Hidden字段来标识会话的,所以原则上是不能用刷新来重新上传文件的.这里可以改变用Hidden字段来标识会话,也可以在页面限制用户刷新来解决.
拜读..期待下一篇..
lushannet@gmail.com 非常感谢
用户上传到一半的时间,刷新页面会造成上传中的文件没有释放
//我想问一下
contentType.GetField("_completed", flags1).SetValue(httpRawUploadedContent, true);

//_completed是起什么作用

 //我在2.0下编译,不加上这一句就会出错。
 /*
[InvalidOperationException: 对象的当前状态使该操作无效。]
System.Web.HttpRawUploadedContent.get_Item(Int32 index) +3325637
System.Web.HttpMultipartContentTemplateParser.GetNextLine() +30
System.Web.HttpMultipartContentTemplateParser.ParseIntoElementList() +15
System.Web.HttpMultipartContentTemplateParser.Parse(HttpRawUploadedContent data, Int32 length, Byte[] boundary, Encoding encoding) +45
System.Web.HttpRequest.GetMultipartContent() +100
System.Web.HttpRequest.FillInFormCollection() +222
System.Web.HttpRequest.get_Form() +65
System.Web.HttpRequest.get_HasForm() +3309630
System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +45
System.Web.UI.Page.DeterminePostBackMode() +65
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +133

关注。。。期待下面的文章
ninghuang22@163.com 謝謝!
不错,似乎比SlickUpload,AspNetUpload等涉及Asp.NET底层更深。
能说说2.0中如何去掉请求头吗?
反射这一块还是刚开始学
下载了原码,在2.0中没有办法通过.
能说说2.0中如何去掉请求头吗?
反射这一块还是刚开始学
下载了原码,在2.0中没有办法通过.
把源代码发出来岂不更方便
--引用--------------------------------------------------
//还有一个小问题
//读取的时候默认是读取4k
//当文件小于4k的时候
//由于
public const int splitLength = 100; //的值默认为 100
bool hasMoreData = false;
//maxLength没取到值

if (hasMoreData)//这里有判断但并没有处理
{
InjectTextParts(app.Request,dataReader.GetRewriteRequest(Buffer,maxLength - goBackLeng,goBackLeng));
}
else
{

InjectTextParts(app.Request,dataReader.GetRewriteRequest(Buffer,maxLength - goBackLeng,goBackLeng));
}
--------------------------------------------------------

这里有一个错误,原来的本意是如果是一次性读完请求的全部内容,那就传送原始内容,不剔除文件内容,可能后来是我不知什么时Copy了一下,把两个分支整成一样的了。谢谢这位朋友给我指出了错误。
这里正确应当为:
if (hasMoreData)
{
byte[] data = dataReader.GetRewriteRequest(Buffer, maxLength - goBackLeng, goBackLeng);
InjectTextParts(app.Request, data);
}
else
{
InjectTextParts(app.Request, arrBuffer);
}
共2页: 1 2 下一页