1

这是我的代码:

$(function(){

var btnUpload=$('#browse');
var adinfoid=$('#adinfoid').val();
new AjaxUpload(btnUpload, {
    action: '<?php echo base_url()?>index.php/post/upload_editmainimage/'+adinfoid,
    name: 'uploadfile',
    onSubmit: function(file, ext){

        $("#progressid").css("display","block");
        if (! (ext && /^(jpg|png|jpeg|gif|JPG|PNG|JPEG|GIF)$/.test(ext))){
            $("#mainphotoerror").html('Only JPG, PNG, GIF, files are allowed');
            $("#mainphotoerror").css('display','block');
            return false;
        }           
    },
    onComplete: function(file, response){ //alert(response);

        if(response){
                /*$(".main_image").html('');
                $(".main_image").html(response);*/
                $("#progressid").css("display","none");
                $("#image"+<?php echo $mainimage->intphotoid; ?>).css('display','block');
                $("#imagemainicon"+<?php echo $mainimage->intphotoid; ?>).css('display','block');

                $("#mainimageicon").attr("src",response);   
                $("#mainimageicon").attr("width",55);
                $("#mainimageicon").attr("height",55);
                $("#mainimageicon1").attr("src",response);  
        }else{
        alert("error");
        }
    }
}); 

});

<input type="button" id="browse" class="browse_media" value="Browse">
        <div id="progressid" class="displayNone">
            <img src="//s3.amazonaws.com/s3.racingjunk.com/102/images/procesing.gif" width="117" height="20" />
            Uploading.....
        </div>

当我单击浏览按钮时,我需要显示一个进度条 5 分钟。5 分钟后,进度条将隐藏或不显示。进度条隐藏后,图像将显示。

我怎样才能做到这一点?这可能吗?

4

3 回答 3

2

试试这个
http://www.9lessons.info/2012/04/file-upload-progress-bar-with-jquery.html

我自己没试过,但今晚工作

于 2012-05-17T09:04:21.653 回答
1

你必须这样做: -

<div id="popup1" class="popup_block">
    <?php echo $this->Html->image('ajax-loader2.gif'); ?>
    <h4>Processing Please Wait...! </h4>
</div>

在脚本中:- 使用 Jquery

 //Fade in Background
            jQuery('body').append('<div id="fade"></div>'); //Add the fade layer to bottom of the body tag.
            jQuery('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); //Fade in the fade layer
            var popID = 'popup1';
            //var popWidth = 500;
            //Fade in the Popup and add close button
            jQuery('#' + popID).css({ 'width': '250' });

有时间你可以提供你的 Jquery 或这样做:-

window.setInterval(function() {
    // this will execute every 5 minutes => show the alert here
}, 300000);
于 2012-05-17T09:16:29.930 回答
0

您无法使用您共享的代码来实现这一点。你看,你需要知道有多少数据已经发送到服务器,这样你才能显示实际进度。

人们是如何做到的?1. 他们使用第三方插件,如 java Applet 或 Flash 来上传文件 2. 他们使用动画图片来显示文件发送时的进度(不是实际进度)。3. 他们使用 HTML 5。

要获得关于已发送到服务器的文件量的实时反馈,您将需要 3rd 方插件(如果您使用的是旧版浏览器)或 HTML5 XMLHttpRequest 对象

请参阅带有上传状态/进度条的html5 文件上传。

于 2012-05-17T09:15:37.090 回答