Javascript 为什么此设置使文件始终处于上载状态,即使此文件已完全上载

Javascript 为什么此设置使文件始终处于上载状态,即使此文件已完全上载,javascript,swfupload,Javascript,Swfupload,这是我的设置。我自定义了upload_success_处理程序,然后文件始终处于上载状态,即使此文件已完全上载。我该怎么办 var settings = { flash_url : "/js/upload/swfupload.swf", upload_url: "/includes/imgupload.php", post_params: {"PHPSESSID" : "<?php echo session_id(); ?&g

这是我的设置。我自定义了upload_success_处理程序,然后文件始终处于上载状态,即使此文件已完全上载。我该怎么办

        var settings = {
        flash_url : "/js/upload/swfupload.swf",
        upload_url: "/includes/imgupload.php",
        post_params: {"PHPSESSID" : "<?php echo session_id(); ?>","type":"post"},
        file_size_limit : "5 MB",
        file_types : "*.jpeg;*.jpg;*.png;*.gif",
        file_types_description : "JPEG Images;JPG Images;PNG Images;GIF Images;",
        file_upload_limit : 10,
        file_queue_limit : 10,
        custom_settings : {
            progressTarget : "fsUploadProgress",
            cancelButtonId : "btnCancel"
        },
        debug: false,
        //Button
        button_image_url: "images/TestImageNoText_65x29.png",
        button_width: "65",
        button_height: "29",
        button_placeholder_id: "btn-upload",
        button_text: '<span class="theFont">chose pictures</span>',
        button_text_style: ".theFont { font-size: 12; }",
        button_text_left_padding: 8,
        button_text_top_padding: 3,

        //The event handler functions are defined in handlers.js
        file_queued_handler : fileQueued,
        file_queue_error_handler : fileQueueError,
        file_dialog_complete_handler : fileDialogComplete,
        upload_start_handler : uploadStart,
        upload_progress_handler : uploadProgress,
        upload_error_handler : uploadError,
        //upload_success_handler : uploadSuccess,
        upload_success_handler : function(file,data){
            document.getElementById("holder").innerHTML +="<li><img class='thumb' src='/includes/thumbnail.php?id="+data+"' style='max-width:400px;'></img>";
            document.getElementById("holder").innerHTML +="<br><div>Pic"+item+"</div></li>";
            parent.addImg(item,data);
            item+=1;
            setStats(file,COMPLETE);
        },
        upload_complete_handler : uploadComplete,
        queue_complete_handler : queueComplete  // Queue plugin event
        };
var设置={
flash_url:“/js/upload/swfupload.swf”,
上传url:“/includes/imgupload.php”,
post_参数:{“PHPSESSID”:“”“type”:“post”},
文件大小限制:“5 MB”,
文件类型:“*.jpeg;*.jpg;*.png;*.gif”,
文件类型描述:“JPEG图像;JPG图像;PNG图像;GIF图像;”,
文件上传限制:10,
文件队列限制:10,
自定义\u设置:{
progressTarget:“fsUploadProgress”,
取消按钮NID:“取消”
},
调试:错误,
//钮扣
按钮_image_url:“images/TestImageNoText_65x29.png”,
按钮宽度:“65”,
按钮高度:“29”,
按钮\u占位符\u id:“btn上传”,
按钮_文本:“选择图片”,
按钮文本样式:“.theFont{font size:12;}”,
按钮\文本\左\填充:8,
按钮\文本\顶部\填充:3,
//事件处理程序函数在handlers.js中定义
文件队列处理程序:文件队列,
文件队列错误处理程序:fileQueueError,
文件对话框完成处理程序:文件对话框完成,
上载\u开始\u处理程序:上载开始,
上传进度处理程序:上传进度,
上载错误\u处理程序:上载错误,
//上载成功\u处理程序:上载成功,
上载\u成功\u处理程序:函数(文件、数据){
document.getElementById(“holder”).innerHTML+=“
  • ”; document.getElementById(“holder”).innerHTML+=“
    Pic”+item+”
  • ”; 父项添加(项目、数据); 项目+=1; 设置状态(文件,完整); }, 上载完成\u处理程序:上载完成, 队列\u完成\u处理程序:队列完成//队列插件事件 };
    setStats()需要一个参数,一个Stats对象,但您需要传递File对象

    此外:

        document.getElementById("holder").innerHTML +="<li><img class='thumb' src='/includes/thumbnail.php?id="+data+"' style='max-width:400px;'></img>";
        document.getElementById("holder").innerHTML +="<br><div>Pic"+item+"</div></li>";
    
    document.getElementById(“持有者”).innerHTML+=“
  • ”; document.getElementById(“holder”).innerHTML+=“
    Pic”+item+”
  • ”;
    没有结束标记。您还应该连接两个字符串,否则将取决于浏览器呈现的结果:

    document.getElementById("holder").innerHTML +=
      "<li><img class='thumb' src='/includes/thumbnail.php?id="+data+"' \
                style='max-width:400px;'/>\
                <br><div>Pic"+item+"</div></li>";
    
    document.getElementById(“持有者”).innerHTML+=
    “
  • \
    图片“+项目+”
  • ”;

    最后:什么是item和parent.addImg()?

    我在handler.js中的函数uploadsuccess()中找到了以下几行:

        var progress=new FileProgress(file,this.customSettings.progressTarget);
    progress.setComplete();
    progress.setStatus("Complete.");
    

    我将它们复制到我自己的处理函数中,它现在正在工作。

    iframe中的此上载程序用于将图片添加到编辑器中。addImg()用于将成功上载的图片传递到父窗口的编辑器。var项只是一个计数器。感谢您努力解决我的问题和建议:)。我已经自己回答了这个问题,如果你有兴趣,可以看一眼。