У меня есть встроенная форма 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, так что это не должно быть проблемой.
Спасибо,
Jason