winfrom客户端上传文件(异步)进度条不走动!

问题描述

winform客户端向网站上传文件,开始使用普通的WebClient上传文件,进度条是正常的,但这种方式的确定是客户端会假死,所以改成了WebClient的异步上传方式,这种方式不会假死了,但进度条始终不走动了,始终是0的位置,文件是上传成功了的,望高手帮我看下。privatevoidbutton1_Click(objectsender,EventArgse){//前面的数据库查询省略,会得到pic_List.Count与m_fileList.Length这两个的数据值。progressBar1.Minimum=0;progressBar1.Maximum=pic_List.Count+m_fileList.Length;progressBar1.Value=0;stringm_url=“http://www.cccc.com/ssss.ashx”foreach(stringiteminpic_List){if(File.Exists(AppDomain.CurrentDomain.BaseDirectory+item)){//开始上传图片附件currRest+=UploadAtta(m_url,AppDomain.CurrentDomain.BaseDirectory+item)+"n";}progressBar1.Value++;}foreach(stringiteminm_fileList){if(File.Exists(item)){//开始上传文档附件currRest+=UploadAtta(m_url,item)+"n";}progressBar1.Value++;}MessageBox.Show("文档上传结束,以下文档已经上传:n"+currRest);}//上传文件到服务器privatestaticstringUploadAtta(stringm_url,stringFileName){stringstrurl=m_url+"?path="+FileName.Substring(0,FileName.LastIndexOf("\"));stringcurrFileName=FileName.Substring(FileName.LastIndexOf("\")+1,FileName.Length-FileName.LastIndexOf("\")-1);try{//异步上传WebClientmyClient=newWebClient();if(myClient.IsBusy){myClient.CancelAsync();}myClient.UploadFileAsync(newUri(strurl),"POST",FileName);myClient.UploadFileCompleted+=newUploadFileCompletedEventHandler(myClient_UploadFileCompleted);//myClient.CancelAsync();return"【"+currFileName+"】";}catch(Exceptionex){return"【"+currFileName+"】失败!";}}privatestaticvoidmyClient_UploadFileCompleted(objectsender,UploadFileCompletedEventArgse){if(e.Error==null&&e.Cancelled==false){//MessageBox.Show("文档上传失败!");}}

解决方案

本帖最后由 shifan360 于 2015-06-23 13:26:29 编辑
解决方案二:
http://blog.csdn.net/shihuan10430049/article/details/3734398参考
解决方案三:
用BackgroundWorker来做会直观一些。
解决方案四:
lz的处理方式不行的,主线程被阻塞了进度计算使用单独线程,刷新界面采用委托方式

时间: 2024-09-28 07:27:48

winfrom客户端上传文件(异步)进度条不走动!的相关文章

基于HTML5 Ajax实现文件上传并显示进度条_AJAX相关

本文实例讲解了ajax上传文件及进度条的实现方法,分享给大家供大家参考,具体内容如下 效果图: html5上传是同步上传的方式,所以能够实现进度条的显示.1.上传文件: 首先我们用ajax来取得<input type="file" id="file_upload">的file对象: var file = null; var input = $("#file_upload"); //文件域选择文件时, 执行readFile函数 inpu

基于ajax实现文件上传并显示进度条_javascript技巧

下面给大家分享下基于ajax实现文件上传并显示进度条.在jsp部分,需要设计一个表单,form的属性添加 enctype="multipart/form-data",设计一个iframe,作为隐藏.form的target等于iframe的name; 在servlet部分:文件上传用的Commons-FileupLoad,需要两个Jar,commons-fileupload和commons-io,少了第二个会报出找不到类的异常: 第一个servlet处理上传,及把上传进度保存到sessi

基于HTML5 Ajax实现文件上传并显示进度条

本文实例讲解了ajax上传文件及进度条的实现方法,分享给大家供大家参考,具体内容如下 效果图: html5上传是同步上传的方式,所以能够实现进度条的显示. 1.上传文件: 首先我们用ajax来取得<input type="file" id="file_upload">的file对象: var file = null; var input = $("#file_upload"); //文件域选择文件时, 执行readFile函数 inp

按钮-求多文件上传,带进度条的代码,?

问题描述 求多文件上传,带进度条的代码,? 用java 在mybaitys +struts2+spring 实现多文件上传 点上传按钮显进度条,上传到百分在再显示出图片.最好兼容多个浏览器. 解决方案 建议用FileUpload组件来实现 JAVA学习提高之---- FileUpload组件实现多文件上传 http://blog.csdn.net/luweifeng1983/article/details/3613544 解决方案二: 文件上传是前端的事,不干mybatis.spring,最多和

asp无组件上传带真实进度条

  asp无组件上传带真实进度条无组件上传带真实进度条 其中 upload.asp为核心代码,除非特殊需要,一般不需要修改 demo.htm是演示无刷新进度条(IE5.5+支持) demo.asp为处理demo.asp上传的文件,因为演示需要,在Demo.asp中仅仅上传,不作保存,如果需要保存,只需去掉相关注释即可. Example_Normal.htm,一个普通的上传的例子 Example_Normal_RadomFilename.htm, 一个保存将上传文件命名为随机文件名的例子 Exam

PHP + plupload.js实现多图上传并显示进度条加删除实例代码

PHP + plupload.js JS插件实现多图上传并显示进度条加删除实例,废话不多说,直接上代码 HTML代码: <!DOCTYPE html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no&qu

如何使用酷盘PC客户端上传文件?

如何使用酷盘PC客户端上传文件? 1.首先,安装酷盘PC客户端,注册并登录酷盘. 2.双击桌面的酷盘图标或双击任务栏上的酷盘图标打开酷盘同步目录. 电脑常识 3.打开"我的电脑"或者"资源管理器"选择您需要同步至酷盘的文件和文件夹,直接复制或者粘贴到"酷盘同步目录" 4.结束!(*^__^*) 酷盘会自动将酷盘同步目录里的文件统统同步至酷盘网络服务器 当您看到右下角的酷盘图标已经显示为同步完成的图标时,就表示您的文件已经成功同步到酷盘网络服务器上

应用-一个web管理端接收大量客户端上传文件的问题

问题描述 一个web管理端接收大量客户端上传文件的问题 应用场景:一个Java实现的web管理端,对应多个客户端(C++实现,客户端大约有2万台),在管理端通过设置关键字抓取客户端的命中文件,如在管理端设定"你好"关键字下发到各客户端,各客户端会自动搜索本机器上带"你好"关键字的各种类型的文件并将命中文件上报到管理,现在想问的是在管理端如何接收个客户端上传的文件,通过HTTP方式接收还是FTP方式接收,由于客户端数目较多,且可能由于关键字设置过于普通(如"

webservice 上传附件-webservice如何实现客户端上传文件文件

问题描述 webservice如何实现客户端上传文件文件 最近在项目上遇到这么个问题,求大神解答.用webservice上传文件.说明文档就给了个返回值,不晓得如何写代码.同时要求,如果文件比较大,建议使用每次1-5M进行数据上传,一个文件可以多次进行传送