您目前尚未登陆,请选择【登陆】或【注册
首页->上传下载->51aspx大文件上传并显示进度和上传速率示例及组建源码>>WebbUpload/WebbUploadStatusHandler.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:51aspx大文件上传并显示进度和上传速率示例及组建源码
当前文件:文件类型 LargeFileUpload/WebbUpload/WebbUploadStatusHandler.cs打开代码结构图
普通视图
		            
1using System; 2using System.Text; 3using System.Web; 4using System.IO; 5 6namespace Webb.WAVE.Controls.Upload 7{ 8 //该源码下载自www.51aspx.com(51aspx.com) 9 10 /// <summary> 11 /// 12 /// </summary> 13 internal class WebbUploadStatusHandler : IHttpHandler 14 { 15 /// <summary> 16 /// Implement from IHttphanders 17 /// </summary> 18 public bool IsReusable 19 { 20 get { return true; } 21 } 22 23 public WebbUploadStatusHandler() 24 { 25 } 26 27 /// <summary> 28 /// 29 /// </summary> 30 /// <param name="uploadGUID"></param> 31 public void InitProgress(string i_uploadGUID) 32 { 33 HttpContext context; 34 UploadStatus m_uploadStatus = new UploadStatus(); 35 m_uploadStatus.GetUploadStatus(i_uploadGUID); 36 StringBuilder sb = WebbHelper.GetHtml("Progress.page"); 37 //While files were uploading, update the state. 38 if (m_uploadStatus.IsActive) 39 { 40 switch (m_uploadStatus.Status) 41 { 42 case UploadStatus.UploadState.Initializing: sb.Replace("${status}$", "Initializtion..."); break; 43 case UploadStatus.UploadState.Uploading: sb.Replace("${status}$", "Uploading..."); break; 44 case UploadStatus.UploadState.Uploaded: sb.Replace("${status}$", "Upload completed."); break; 45 case UploadStatus.UploadState.Moving: sb.Replace("${status}$", "Moving file..."); break; 46 case UploadStatus.UploadState.Completed: sb.Replace("${status}$", "Finished."); break; 47 } 48 //WebbTextTrace.TraceMsg(sb.ToString()); 49 this.ReviewStatus(m_uploadStatus, sb, i_uploadGUID); 50 } 51 else 52 { 53 sb.Replace("${Script}$", "<script>window.opener=self;window.close();</script>"); 54 } 55 context = WebbHelper.GetContext(); 56 //Clear the cache of client browser. 57 context.Response.Expires = 0; 58 context.Response.Cache.SetCacheability(HttpCacheability.NoCache); 59 context.Response.ContentEncoding = Encoding.Default; 60 context.Response.ContentType = "text/html"; 61 context.Response.Clear(); 62 //Show page to client. 63 context.Response.Write(sb.ToString()); 64 } 65 66 /// <summary> 67 /// Update current upload status. 68 /// </summary> 69 /// <param name="uploadStatus"></param> 70 /// <param name="builder"></param> 71 /// <param name="uploadGUID"></param> 72 private void ReviewStatus(UploadStatus uploadStatus, StringBuilder builder, string uploadGUID) 73 { 74 if (uploadStatus.Status == UploadStatus.UploadState.Uploading) 75 { 76 builder.Replace("${FileName}$", Path.GetFileName(uploadStatus.FileName)); 77 builder.Replace("${UploadProgress}$", uploadStatus.Percent.ToString()); 78 builder.Replace("${SurplusProgress}$", Convert.ToString(100 - uploadStatus.Percent)); 79 builder.Replace("${UploadSpeed}$", (WebbHelper.GetFormatString(uploadStatus.Speed) + "/s")); 80 builder.Replace("${LeftTime}$", WebbHelper.GetFormatString(uploadStatus.LeftTime)); 81 builder.Replace("${BtnOK}$", "disabled"); 82 builder.Replace("${Refresh}$", ("<meta http-equiv=\"Refresh\" content=\"2\";URL=progress.ashx?UploadGUID="+uploadGUID+"\">")); 83 } 84 else if (uploadStatus.Status == UploadStatus.UploadState.Completed) 85 { 86 builder.Replace("${UploadProgress}$", uploadStatus.Percent.ToString()); 87 builder.Replace("${SurplusProgress}$", Convert.ToString(100 - uploadStatus.Percent)); 88 89 builder.Replace("${FileName}$", (uploadStatus.FileCount.ToString() + "file(s) uploaded success!")); 90 builder.Replace("${UploadSpeed}$", (WebbHelper.GetFormatString(uploadStatus.Speed) + "/s")); 91 builder.Replace("${LeftTime}$", "finished, no time remain!"); 92 93 uploadStatus.Dispose(); 94 builder.Replace("${BtnOK}$", "onclick=\"javascript:window.opener=self;window.close();return false;\""); 95 builder.Replace("${Refresh}$", ""); 96 } 97 else 98 { 99 builder.Replace("${FileName}$", "Loading..."); 100 builder.Replace("${UploadProgress}$", "0"); 101 builder.Replace("${SurplusProgress}$", "100"); 102 builder.Replace("${UploadSpeed}$", (WebbHelper.GetFormatString(uploadStatus.Speed) + "/s")); 103 builder.Replace("${LeftTime}$", "0 second(s)"); 104 builder.Replace("${BtnOK}$", "disabled"); 105 builder.Replace("${Refresh}$", ("<meta http-equiv=\"Refresh\" content=\"1\";URL=progress.ashx?UploadID=" + uploadGUID + "\">")); 106 } 107 108 if (uploadStatus.Status == UploadStatus.UploadState.Completed) 109 { 110 builder.Replace("${BtnCancel}$", "onclick=\"javascript:window.opener=self;window.close();return false;\""); 111 } 112 else 113 { 114 if(WebbHelper.IsAccordantBrowser()) 115 { 116 builder.Replace("${BtnCancel}$", "onclick=\"javascript:dialogArguments.location.href=dialogArguments.location.href;window.close();\""); 117 } 118 else 119 { 120 builder.Replace("${BtnCancel}$", "onclick=\"javascript:window.opener.opener=null;window.opener.location.href=window.opener.location.href;window.close();this.disabled=true;\""); 121 } 122 } 123 124 builder.Replace("${Script}$", ""); 125 } 126 127 /// <summary> 128 /// 129 /// </summary> 130 /// <param name="context"></param> 131 public void ProcessRequest(HttpContext context) 132 { 133 string m_uploadID = context.Request.QueryString["UploadGUID"]; 134 string m_filePath = context.Request.FilePath; 135 m_filePath = m_filePath.Substring((m_filePath.LastIndexOf("/") + 1)).ToUpper(); 136// bool isUnknownRequest = false; 137 if (m_filePath=="PROGRESS.ASHX") 138 { 139 this.InitProgress(m_uploadID); 140 } 141// The IIS can solve this problem 142// else 143// { 144// isUnknownRequest = true; 145// } 146// 147// if (isUnknownRequest) 148// { 149// throw new HttpException(500, "unknown request"); 150// } 151 } 152 } 153}
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:51aspx大文件上传并显示进度和上传速率示例及组建源码
51Aspx.com 版权所有 CopyRight © 2000-2008. 京ICP备06046876号