Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Индиептор загрузки файлов С СЕРВЕРА! (https://javascript.ru/forum/events/1356-indieptor-zagruzki-fajjlov-s-servera.html)

GrishinEV 30.06.2008 13:22

Индиептор загрузки файлов С СЕРВЕРА!
 
Почему выделил именно слова С СЕРВЕРА, да потому что искал подобное в поисковиках, но наталкивался только на индикаторы загрузки файлов на сервер.
Вкратце опишу что хочу сделать...
есть HTML страница с кнопкой
<html>
<body>
<form action="download.php">
<input type="submit" value="получить данные">
</form>

при нажатии на кнопку, появляется обычное виндовое окно, которое предлагает сохранить rar файл, который возвращает download.php.
И вот проблема, этот самый rar файл, формируется довольно долго, в результате чего, пользователь сново и сново нажимает на кнопку "получить данные", в результате чего "валит сервер".

И вот внимание мой вопрос, как заблокировать кнопку, пока не появилось это самое виндовое окно, для сохраниея файла!
Если кому то что то непонятно, то пишите!

Gvozd 30.06.2008 13:42

<form action="download.php">
<input type="submit" value="получить данные" id="myinput" onclick="myfunc();return true;">
</form>

function myfunc()
{
myinput=document.getElementById("myinput")
myinput.disabled="disabled";//блокируем кнопку. возможно придется делать это через setAtribute
}

сижу в клубе, поэтому проверить код не могу, но как-то так оно должно работать.

GrishinEV 30.06.2008 14:03

нет
 
Увы не все так просто, как казалось бы!(((
Жду еще предложений)))

Kolyaj 30.06.2008 14:32

Скидывать заголовки в первую очередь (т.е. до начала генерации архива) не пробовали? В частности
Код:

Content-Disposition: attachment; filename=bla.rar

GrishinEV 30.06.2008 14:51

Цитата:

Сообщение от Kolyaj (Сообщение 3382)
Скидывать заголовки в первую очередь (т.е. до начала генерации архива) не пробовали? В частности
Код:

Content-Disposition: attachment; filename=bla.rar

Вы наверное непоняли вопроса, с тем что файл возвращает данные нет никаких проблем, файлик данные формирует, проблема в том что пока данные формируются нужно заблокировать кнопку, от повторного нажатия, и после появления окна, который предлагает сохранить файл эту кнопку нужно заблокировать!

Kolyaj 30.06.2008 15:20

Чем тогда решение Gvozd не устраивает?

GrishinEV 30.06.2008 15:27

Цитата:

Сообщение от Kolyaj (Сообщение 3384)
Чем тогда решение Gvozd не устраивает?

Тем что этот вариант не работает!!

GrishinEV 02.07.2008 12:58

неужели никто незнает как это сделать?(((

Андрей Параничев 02.07.2008 13:24

Вариант Gvozd должен работать. Если он не работает, выложите полный листинг вашего кода и будем разбираться дальше.

Gvozd 03.07.2008 13:14

Извините, напутал. не на то событие повесил обработчик.
Вот так работает в Опере-ФайрФоксе-Осле(выкладываю полностью, во избежание)
dowmload.php
<?
header("Content-type: application/zip");
header("attachment: filename=Plan_platezhey1.zip");
sleep(5);
echo "fff";
?>

1.htm
<html>
<head>
<script>
function myfunc()
{
myinput=document.getElementById("myinput")
myinput.disabled="disabled";//блокируем кнопку. возможно придется делать это через setAtribute
}
</script>
</head>
<body>
<form onsubmit="myfunc();return true;" action="download.php">
<input type="submit" value="получить данные" id="myinput">
</form>
</body>
</html>

Андрей Параничев 05.07.2008 13:26

Gvozd,
Поскольку в том варианте после установки disabled="disabled" возвращался в обработчик события - true, то он принципиально не отличается от этого варианта. Во всяком случае, когда я проверял, у меня все работало. Если я, конечно, правильно помню.

Gvozd 05.07.2008 20:45

это конечно может быть, если бы не отказ ИЕ и Оперы работать с первым обработчиком в такой способ

Breeze 01.12.2011 14:05

Кто нибудь знает, как сделать так что бы после получения файла кнопка разблокировалась?


Часовой пояс GMT +3, время: 13:34.