当前位置:编程学习 > C#/ASP.NET >>

一次上传多张图片 并要进度条 使用ASP。net实现

各位高手急用 谢谢了!!! --------------------编程问答-------------------- 到博客园里找找吧。 --------------------编程问答-------------------- http://www.cnblogs.com/lwjacky/archive/2006/09/26/515283.html
参考 --------------------编程问答-------------------- 如果要实时反映上传文件的真实进度,比较难搞,要考虑网速等一系列因素...


目前大多数的都是伪进度:上传多张图的同时开个进度条,文件传完进度条消失 --------------------编程问答--------------------
引用 3 楼 abandonship 的回复:
如果要实时反映上传文件的真实进度,比较难搞,要考虑网速等一系列因素...


目前大多数的都是伪进度:上传多张图的同时开个进度条,文件传完进度条消失



。。。。。 --------------------编程问答-------------------- 软件这东西样样都是假的! --------------------编程问答-------------------- 哥们给你介绍个控件,Devexpress里的ASPxUploadControl,你想要的功能和效果都能实现,不过控件是收费的。可以登录他们的网站看一看效果。
http://demos.devexpress.com/ASPxperienceDemos/ --------------------编程问答-------------------- 真实的进度条没有,我这个是当你上传图片时,出现个遮罩层。显示个gif图片,当图片加载完毕,图片消失,遮罩层消失      如果没有好的办法,不妨考虑我的做法,很好的!!!!!
  <script type="text/javascript" language="javascript">
     function startDelay()
     { 
         var t;
         t=setTimeout("startTask()",3000);
         return true;
     }
    function startTask()
    {
       
        var lo=document.getElementById("logon"); 
        var lg=document.getElementById("backloading");
             
                    lg.style.display="block";   
                    lo.style.display="block";
                    
                    
                    
         return true;                
    }
   
    </script>
</head>
<body>
    <form id="form1" runat="server">
       <!--添加一个遮罩层-->
      <div id="backloading" style="display:none;width:100%;height:100%;position:absolute;z-index:0;border:0px;background-color:#cccccc;margin:0px;padding:0px;filter:alpha(opacity=50);"align="center"></div>      
        <!--弹出层显示内容-->
        <div id="logon"  align="center" style=" text-align:center;display:none;background-color:#ffffff;position:absolute;border:3px solid #ffffff; left: 400px; top: 270px;"> 
          
                <div>
                  <div> <h5> <asp:Image ID="Image1" runat="server" ImageUrl="~/image/loading.gif" /></h5> </div> 
                  <div>数据正在加载,请稍候.....</div>
                  </div>
         </div>
         <asp:Button ID="Button1" runat="server" Text="加载数据" OnClick="Button1_Click" OnClientClick="startDelay();" />
 protected void Button1_Click(object sender, EventArgs e)
    {
        int j = 0;
        for (int i = 1; i < 100000; i++)
        {
            //for循环是向数据库中插入数据
        SqlConnection sqlcon = new SqlConnection("user id=sa;password=sa;initial catalog=Text;Server=(local);Connect Timeout=60");
        string str = "insert into [Test](ID,UserName,AddTime)values(1,'admin','" + DateTime.Now.ToString() + "')";
        SqlCommand sqlcom = new SqlCommand(str, sqlcon);
       
        sqlcon.Open();


         sqlcom.ExecuteNonQuery();
         sqlcon.Close();
        }

            Page_Load(null, null);
    } --------------------编程问答-------------------- 添加数据到数据库的进度条到时有个真实的,不过目前只能添加相同的数据到数据库。等我有时间该好了,发出来。。
每次都用了sql.open().效率太慢。所以当时就做个gif的进度条。不过功能就是真实进度条。数据加载完毕,自动关闭 --------------------编程问答-------------------- --------------------编程问答-------------------- 顶,同样想知道 --------------------编程问答--------------------
引用 3 楼 abandonship 的回复:
如果要实时反映上传文件的真实进度,比较难搞,要考虑网速等一系列因素...


目前大多数的都是伪进度:上传多张图的同时开个进度条,文件传完进度条消失

同上 --------------------编程问答-------------------- UP友情顶一个 --------------------编程问答-------------------- 收到 --------------------编程问答-------------------- http://blog.csdn.net/jaylongli/archive/2009/08/28/4494142.aspx
 Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度  --------------------编程问答-------------------- 好实现上传显示进度条不简单 --------------------编程问答-------------------- 进度条就是虚的 和你实际操作内容没关系 你想要多快就多快 --------------------编程问答-------------------- 教你个很简单的: 循环上传时出现 遮罩层 ,遮罩层中播放flash进度条。
ok,只要flash好看,一切都很逼真。 --------------------编程问答-------------------- 又学到不少!! --------------------编程问答--------------------
引用 3 楼 abandonship 的回复:
如果要实时反映上传文件的真实进度,比较难搞,要考虑网速等一系列因素...


目前大多数的都是伪进度:上传多张图的同时开个进度条,文件传完进度条消失

是的,或者是用Ajax,我记得也有进度条的功能,只不过也是伪进度条。。。 --------------------编程问答-------------------- 基本原理:
通过复制当前form(form1)中的input type=file 的html元素到另一个专用于文件上传的form(uploadForm)中,而切uploadForm的target指向到一个隐藏的iframe(uploadResponse)框架的name.这样,当执行uploadForm的submit()操作时,就会通过uploadResponse将uploadForm的内容post到UploadImage.aspx页面去执行,由于iframe元素uploadResponse及form元素uploadForm元素都是位于一个隐藏的div元素中,所以访问者自始至终都不会见到多余的东西。
实例:
Default.aspx页面。
<script type="text/javascript">
    function uploadImage() {
        var file = document.getElementById("imageFile");
        var uploadFormElement = document.getElementById("uploadForm");
        //显示进度条
        document.getElementById("processDiv").style.display = "block"; // the progress div
        //复制图片数据
        uploadFormElement.removeChild(uploadFormElement.imageFile);
        uploadFormElement.appendChild(file);
        document.getElementById("uploadImageDiv").innerHTML = '<input type="file" id="imageFile" name="imageFile" />';
        //提交图片数据
        uploadFormElement.submit();
    }
    function uploadImageResponse(response) {
        document.getElementById("processDiv").style.display = "none"; // hide progresss div
        var errLabel = document.getElementById("uploadMessage");
        errLabel.innerHTML = "";
        window.eval("var k=" + response);
        if (k.status == 1)
            errLabel.innerHTML = k.message;
        else if (k.status == 2)
            errLabel.innerHTML = k.message;
        else
            eval("tinyMCE.activeEditor.dom.add(tinyMCE.activeEditor.getBody(), 'img', { src:'" + k.message + "',style:'border:0px;'}, null);");
    }
    function uploadButton_onclick() {
    }
    </script>
    <form id="form1" runat="server">
    <div>
        <!-- Gets replaced with TinyMCE, remember HTML in a textarea should be encoded -->
        <tinymce:TextArea ID="elm1" theme="advanced" plugins="spellchecker,safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template"
            theme_advanced_buttons1="bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,forecolor,backcolor,image"
            theme_advanced_buttons2="" theme_advanced_buttons3="" theme_advanced_buttons4=""
            theme_advanced_toolbar_location="top" theme_advanced_toolbar_align="left" theme_advanced_path_location="bottom"
            theme_advanced_resizing="true" runat="server" />
        <div style="margin-top: 5px">
            上传图片:
            <br />
            <div id="uploadImageDiv">
                <input type="file" id="imageFile" name="imageFile" /></div>
            <input type="button" id="uploadButton" onclick="uploadImage();" value="上传" />
            <span id="uploadMessage" style="border: 1px solid #cccccc; color: Red;"></span>
        </div>
        <div id="processDiv" style="display: none; color: #660066; font-family: Arial;">
            <img src="/images/loading2.gif" alt="uploading" />
            图片上传中 <span id="fileName" />
        </div>
    </div>
    </form>
    <div style="display: none;">
        <iframe name="uploadResponse"></iframe>
        <form id="uploadForm" action="UploadImage.aspx?t=<%= DateTime.Now.Ticks %>" target="uploadResponse"
        method="post" enctype="multipart/form-data">
        <input type="file" name="imageFile" value="" />
        </form>
    </div>

我正在使用《Csdn收音机》第一时间获取最新动态! --------------------编程问答-------------------- 记录下,困扰许久 --------------------编程问答-------------------- 去源码网下载 那里有很多
  也挺好用 --------------------编程问答-------------------- http://www.open-open.com/ajax/Upload.htm --------------------编程问答-------------------- 学习 学习 --------------------编程问答-------------------- 可以实现,网上有篇文章介绍的很详细,网址记不住了,搜一下吧,帮顶 --------------------编程问答-------------------- 最近刚好收集了个基于jquery与flash的文件上传!有兴趣的话发邮件to:janyue_air@163.com
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,