我有一个嵌入式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加载,所以这不应该是那个问题。
谢谢, 杰森
答案 0 :(得分:1)
data == null看起来有风险。如果你在php中返回格式错误,它将返回true并结束显示预加载器。尝试: