用于上传文件的嵌入式iframe表单。不首先提交,第二次工作

时间:2010-03-06 01:57:27

标签: php jquery iframe upload submit

我有一个嵌入式iframe表单,它从type =“file”表单字段中获取文件并使用进度条上传它:

<form action="sell_upload.php" method="post" id="uploadform" enctype="multipart/form-data">
    <input type="hidden" name="UPLOAD_IDENTIFIER" id="progress_key" value="<?= $uuid ?>" /> 
    <input type="hidden" name="uploaded" value="yes" />    
    <input type="hidden" name="MAX_FILE_SIZE" value="2097152" />        
    <input type="file" name="ulfile1" id="ulfile1"  onChange="beginUploadNew();"/>

beginUploadNew()在提交时执行(快捷方式为onChange [而不是单击提交]):

function beginUploadNew(){
$('#uploadform').submit();  
$("#uploadprogressbar").fadeIn();
progress_key= $("#progress_key").val();
alert (progress_key);
var i = setInterval(function() 
{ 
    $.getJSON("uploadprogress.php?id=" + progress_key, function(data) 
    {
        if (data == null) 
        {
            clearInterval(i);
            location.reload(true);
            //alert ("oh noes2");
            return;
        }
        //alert ("oh noes3");
        //alert (parseInt(data.bytes_total));
        var percentage = Math.floor(100 * parseInt(data.bytes_uploaded) / parseInt(data.bytes_total));
        $("#uploadprogressbar").progressBar(percentage);
    });

}, 1000);
return true;}

问题: 有时(通常是我第一次按下提交按钮)似乎一切正常,加载栏淡入,就像编写脚本一样,然后突然重新加载页面,因为它什么也没发生。我正在上传1.5微米的图片进行测试,而且肯定没有足够的时间让它上传。

有时它上传得很好。

有什么建议吗?我肯定在等待主页面和iframe加载,所以这不应该是那个问题。

谢谢, 杰森

1 个答案:

答案 0 :(得分:1)

data == null看起来有风险。如果你在php中返回格式错误,它将返回true并结束显示预加载器。尝试:

  1. 观看上传开始前和0%
  2. 时返回的内容
  3. 明确返回一些结尾或观看100%等等,这样当php返回非JSON文本时你不会停止显示进度条