"Bestcomy.Web.Controls.Upload"可以实现上传,并显示上传进度。
后台文件中的使用方法是这样的:public class ProgressBar : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label txt_progressinfo;
protected System.Web.UI.WebControls.Label txt_speed;
protected System.Web.UI.WebControls.Button btn_ok;
protected System.Web.UI.WebControls.Label txt_leftTime;
protected System.Web.UI.WebControls.Button btn_cancle;
protected System.Web.UI.WebControls.Label txt_filename;
public double wd = 0;

private void Page_Load(object sender, System.EventArgs e)
{
btn_ok.Enabled=false;
Progress proc = new Progress(Request["UploadID"]);
if(proc.IsActive)
{
string status = String.Empty;
switch(proc.UploadStatus)
{
case Progress.UploadStatusEnum.Initializing:
status = "初始化...";
break;
case Progress.UploadStatusEnum.Uploading:
status = "上传中...";
break;
case Progress.UploadStatusEnum.Uploaded:
status = "上传完成。";
break;
case Progress.UploadStatusEnum.Moving:
status = "移动文件...";
break;
case Progress.UploadStatusEnum.Completed:
status = "完成。";
break;
}
txt_progressinfo.Text = status;
txt_filename.Text = proc.FileName;
if(proc.UploadStatus == Progress.UploadStatusEnum.Uploading)
{
wd = proc.Percent;
txt_speed.Text = proc.GetFormatString(proc.Speed)+"/秒";
txt_leftTime.Text = proc.GetFormatString(proc.LeftTime);
Response.AppendHeader("Refresh","3");
}
else if(proc.UploadStatus == Progress.UploadStatusEnum.Completed)
{
wd = proc.Percent;
txt_filename.Text = proc.FileCount.ToString()+"个文件上传成功!";
txt_speed.Text = proc.GetFormatString(proc.Speed)+"/秒";
txt_leftTime.Text = "已完成,无时间剩余。";
proc.Dispose();
btn_ok.Attributes.Add("onclick","javascript:window.opener=self;window.close();return false;");
btn_ok.Enabled=true;
}
else
{
Response.AppendHeader("Refresh","3");
}
if(proc.UploadStatus == Progress.UploadStatusEnum.Completed)
btn_cancle.Attributes.Add("onclick","javascript:window.opener=self;window.close();return false;");
else
btn_cancle.Attributes.Add("onclick","javascript:if(window.opener==null || window.opener==self){this.disabled=true;}else{window.opener.opener=null;window.opener.close();this.disabled=true;}return false;");
}
else
{
RegisterClientScriptBlock("closeScript","<script>window.opener=self;window.close();</script>");
}
// 在此处放置用户代码以初始化页面
}问题一:前台界面根本没有引入"Bestcomy.Web.Controls.Upload"控件,怎么显示浏览呢,没有浏览怎样选择项目???问题二:所有标红的地方都会报错,这是为什么呢???问题三:"Bestcomy.Web.Controls.Upload"控件究竟是怎样引入的呢???

解决方案 »

  1.   

    错误信息如下:
    错误 451 “Bestcomy.Web.Controls.Upload.Progress”不包含“IsActive”的定义,并且找不到可接受类型为“Bestcomy.Web.Controls.Upload.Progress”的第一个参数的扩展方法“IsActive”(是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Desktop\WebSiteBdrl\manage\ProgressBar.aspx.cs 32 12 C:\...\WebSiteBdrl\错误 452 “Bestcomy.Web.Controls.Upload.Progress”不包含“UploadStatus”的定义,并且找不到可接受类型为“Bestcomy.Web.Controls.Upload.Progress”的第一个参数的扩展方法“UploadStatus”(是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Desktop\WebSiteBdrl\manage\ProgressBar.aspx.cs 35 17 C:\...\WebSiteBdrl\错误 453 “Bestcomy.Web.Controls.Upload.Progress”不包含“FileName”的定义,并且找不到可接受类型为“Bestcomy.Web.Controls.Upload.Progress”的第一个参数的扩展方法“FileName”(是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Desktop\WebSiteBdrl\manage\ProgressBar.aspx.cs 54 30 C:\...\WebSiteBdrl\错误 454 “Bestcomy.Web.Controls.Upload.Progress”不包含“UploadStatus”的定义,并且找不到可接受类型为“Bestcomy.Web.Controls.Upload.Progress”的第一个参数的扩展方法“UploadStatus”(是否缺少 using 指令或程序集引用?) C:\Users\Administrator\Desktop\WebSiteBdrl\manage\ProgressBar.aspx.cs 55 13 C:\...\WebSiteBdrl\等等,都是这类型的。
      

  2.   

    dll 引用了没   <httpModules>
                <add name="UploadModule" type="Bestcomy.Web.Controls.Upload.UploadModule,Bestcomy.Web.Controls.Upload" />
       </httpModules>
      

  3.   

    http://blog.csdn.net/apinghappy/article/details/1695129
      

  4.   

    一个DEMO的下载地址http://download.csdn.net/download/need21/3568489
      

  5.   


    是Web.config中的:
    <!--
    <httpModules>
    <add  name= "UploadModule"type= "Bestcomy.Web.Controls.Upload.UploadModule,Bestcomy.Web.Controls.Upload"/>
    </httpModules>
    -->这一段是吧,好像被注释掉了。不过取消注释还是不行啊。
      

  6.   

    看了啊。根据那两个实例建了一个项目,但是下载的的那个Demo运行没有问题,另外一个就报错了啊。
      

  7.   

    Progress类的元数据是如下:
    namespace Bestcomy.Web.Controls.Upload
    {
    public class Progress
    {
    public Progress(string UploadID);public void Abort();
    public void Dispose();
    public int get_FileCount();
    public string get_FileName();
    public TimeSpan get_LeftTime();
    public int get_Percent();
    public long get_ReceivedLength();
    public double get_Speed();
    public long get_TotalLength();
    public Progress.UploadStatusEnum get_UploadStatus();
    public string GetFormatString(double size);public enum UploadStatusEnum
    {
    Initializing = 0,
    Uploading = 1,
    Uploaded = 2,
    Moving = 3,
    Completed = 4,
    Error = 5,
    }
    }从元数据看确实不包含“UploadStatus”的定义,不明白了,为什么他们能这样写呢???
      

  8.   

    get_UploadStatus可能改名了