Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Индикатор загрузки файлов на сервер.

Сообщения:  [1-10] 

 
 автор: 1999   (07.07.2006 в 11:20)   письмо автору
 
   для: Loki   (17.06.2006 в 19:26)
 

поглядел я еще разок тот ифрэйм какой открывает RapidShare и увидел вот это:

<script type="text/javascript" language="javascript">
var d=0;var a=false;function p(m,f){a=false;if(window.XMLHttpRequest){a=new XMLHttpRequest();if(a.overrideMimeType){a.overrideMimeType('text/xml');}}else if(window.ActiveXObject){try{a=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{a=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}if(!a){return false;}a.onreadystatechange=o;a.open('GET',m+f,true);a.send(null);}function o(){if(a.readyState==4){if(a.status==200){document.getElementById('progress_block_no').style.visibility="hidden";document.getElementById('progress_block').style.visibility="visible";var g=a.responseText;if(g.length>4){var b=g.split("#");var i=(b[4].replace(/%/,"")/100*550);q(d,i,4500);d=i;document.getElementById('progress_recieved').innerHTML=b[0];document.getElementById('progress_total').innerHTML=b[1];document.getElementById('progress_percent').innerHTML=b[4];document.getElementById('progress_kbpersec').innerHTML=b[2];document.getElementById('progress_minutes').innerHTML=b[3];}else{document.getElementById('progress_block_no').style.visibility="visible";document.getElementById('progress_block').style.visibility="hidden";}}else{}}}function q(j,l,h){var c=15;if(h<=c){document.getElementById('progress_img').width=l;}else{k=l-j;move=Math.round(k/h*c);if(move<1&&k>0){move==3;}e=j+move;document.getElementById('progress_img').width=e;setTimeout("q("+e+", "+l+", "+(h-c)+")",c);}}function r(){var n=new Date();p('/cgi-bin/uploadjs.cgi','?uploadid=147594648645289375&r='+n.getSeconds());setTimeout("r()",5000);}
r();
</script>


т.е. используется то же, что и в AJAX'е (XML request вроде). Собственно идея - раз у меня есть AJAX, то нельзя ли этот самый индикатор реализовать на нем? и наверно это ведь попроще будет? (использую xajax)

   
 
 автор: Loki   (17.06.2006 в 19:26)   письмо автору
 
   для: 1999   (17.06.2006 в 19:16)
 

значит так. в порядке мозгового штурма... сам не пробовал и пока не собираюсь:)
После сабмита, открывается дополнительное окно (как вариант, можно сабмит передавать во фрейм нулевого размера. Далее. Пока первое окно (фрейм) грузит файл на сервер, второе окно дергает на сервере скрипт, который показывает текущий размер файла на сервере, а потом перезугружает сам себя.
Все это очень красиво, но файл грузится во временную директорию под временным именем. Как узнать это имя я пока не придумал. Можно опредлять файл по времени создания, но при большой нагрузке на сервер (когда несколько пользователей одновременно начали загрузку файлов) счетчик будет врать. В остальном, как будто не сложно.

   
 
 автор: 1999   (17.06.2006 в 19:16)   письмо автору
 
   для: YaRosh   (09.03.2006 в 21:58)
 

хотелось бы поднять тему т.к. мне нужен этот самый индикатор.
тот модуль конешно хорош))) но вот на моем хостинге мне разве кто-нибудь разрешить перекомпилировать пхп как я захочу? Или можно поставить этот модуль прописав что-нибудь в .htaccess???
И вобще неужели нет других методов индикации загрузки файлов на сервер?

   
 
 автор: YaRosh   (09.03.2006 в 21:58)   письмо автору
 
   для: cheops   (09.03.2006 в 13:33)
 

Смотри тут: http://pdoru.from.ro/ но этот подуль под *nix системы

   
 
 автор: cheops   (09.03.2006 в 13:33)   письмо автору
 
   для: YaRosh   (08.03.2006 в 22:44)
 

А название не знаете?

   
 
 автор: YaRosh   (08.03.2006 в 22:44)   письмо автору
 
   для: Artem S.   (08.03.2006 в 16:39)
 

Так, после долгих поисков в инете понял, что нужен какой-то модуль для Apache, который правит или добавляет возможности в PHP, вот где бы этот модуль найти?

   
 
 автор: Artem S.   (08.03.2006 в 16:39)   письмо автору
 
   для: YaRosh   (07.03.2006 в 21:58)
 

Сделать на php такое нельзя по причине того, что скрипт запускается после закачки файла. Нужно искать варианты perl/c++

   
 
 автор: YaRosh   (07.03.2006 в 21:58)   письмо автору
 
   для: Marlyn   (07.03.2006 в 17:57)
 

А ReGet Delux тут причем?

   
 
 автор: Marlyn   (07.03.2006 в 17:57)   письмо автору
 
   для: yarosh   (07.03.2006 в 10:19)
 

Можешь попробовать через ReGet Delux, точно получится, я сам пробовал!!! А на счет тобою сказанного понятия не имею!!!

   
 
 автор: yarosh   (07.03.2006 в 10:19)   письмо автору
 
 

Требуется сделать индикатор загрузки файлов на сервер(например как на http://rapidshare.de) средствами PHP и JavaScript. Если с JS мне все предельно понятно и ясно, то вот с PHP глухо.

Я себе представляю весь этот процесс так:
Пользователь, выбрав нужный файл жмет "Загрузить", запускается
PHP скрипт, который добавляет в MySQL(или другую базу) данные о том какой файл загружается, куда файл загружается, полный размер файла и еще присваивает этому файлу ID. Далее файл начинает медленно, но верно, загружаться на сервер. В момент нажатия кнопки "Загрузить" еще запускается JS, который открывает отдельное окно или IFRAME где уже другой скрипт, получив информацию о файле из базы данных(получение по его ID) показывает сколько МБ загружено на сервер

Все в инте облазил, но четкого процесса создания такого индикатора не нашел.

Суть проблемы заключается в том, когда мы используем форму загрузки файлов на сервер методом POST после нажатия кнопки "Загрузить", файл сразу начинает загружаться на сервер, а PHP скрипт начинает работать ТОЛЬКО после того, как файл полностью будет загружен на сервер. Т.е. получить данные о файле до его загрузки на сервер не получается

Думал попробовать сделать загрузку файлов через PHP и FTP. В данной ситуации PHP запускается раньше, чем начинается загрузка файла на сервер, но опять же, тут уже не ясно, как определить размер загружаемого файла

Может быть кто-нибудь сталкивался с такой проблемой?

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования