Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP + javascript прогресс бар, Индикатор загрузки файла 
V
    Опции темы
Cript777
  Дата 17.6.2013, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Приветствую! Имеется простая форма загрузки:

Код

<form method="post" enctype="multipart/form-data" action="http://----.com/upload.php?">
    <p><input name="file" size="18" type="file" value=""></p>
    <p><input name="submit"  type="submit" value="загрузить" onclick=''></p>
</form>

<progress id="progress" max="100" style="width:300px;" value="0"></progress>  \\\прогресс-бар


простой php обработчик:

Код

$file = $_FILES['file']['tmp_name'];
$filename = $_FILES['file']['name'];
if(!empty($file))
{
  ini_set('memory_limit', '32M'); 
  $maxsize = "260000000";
  $extentions = array( "gif","txt","tpl","html","htm","css","pdf","ini","torrent");
  $size = filesize ($_FILES['file']['tmp_name']); 
  $type = strtolower(substr($filename, 1+strrpos($filename,".")));
  $new_name = $_FILES['file']['name'];
  if($size > $maxsize)
  { 
     echo "Error1<br><a href='' onClick=window.close();>Закрыть окно</a>";
  } 
  elseif(!in_array($type,$extentions)) 
  { 
    echo ' <b>Error2 <br>';
  } 
  else 
  { 
    if (copy($file, "$ftpuser/".$new_name))
      echo "Файл успешно загружен!<br>";
    else echo "Файл НЕ был загружен.";
  } 
}


Нужно сделать так, чтобы перемещение ползунка прогресс бара шло параллельно загрузке файла..  smile 

Это сообщение отредактировал(а) Cript777 - 17.6.2013, 00:32
PM MAIL   Вверх
Fortop
Дата 17.6.2013, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 1
Всего: 42





--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Cript777
  Дата 17.6.2013, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Fortop @ 17.6.2013,  09:39)
http://www.php.net/manual/en/session.confi...rogress.enabled

Спасибо за совет, но это что-то совсем не то, да и не выходит то что нужно..
Мне скорей всего нужна javascript функция..
PM MAIL   Вверх
Vas
Дата 17.6.2013, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28





--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Cript777
Дата 17.6.2013, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



Цитата(Vas @ 17.6.2013,  20:20)
Оно?

не совсем, нужна функция которая показывает сколько загрузилось файла  
PM MAIL   Вверх
Arantir
Дата 17.6.2013, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: нет
Всего: 55



Цитата(Cript777 @  17.6.2013,  16:05 Найти цитируемый пост)
Спасибо за совет, но это что-то совсем не то, да и не выходит то что нужно..
Мне скорей всего нужна javascript функция.. 

Про это ведь так красиво написано http://www.php.net/manual/ru/session.upload-progress.php:
Цитата
Данная информация не особенно полезна для запроса, непосредственно закачивающего файл, однако, в течение данной загрузки приложение может посылать POST-запросы на отдельную страницу (например, с помощью XHR) для проверки статуса.

Организовываете это отслеживание прогресса через сессии. На стороне клиента делаете простенький ajax-запрос и отдаете в него значение из сессии. Повторяете запрос каждые 2-3 секунды, пока файл не загрузится. Передается в запросе столько лишь цифра, так что он не должен особо нагружать сервер, даже если каждую секунду проверять.

Добавлено @ 22:20
Поддержка прогресса загрузки чистым Javascript появилась вместе с HTML5. Можете разобраться, если хотите. Мне еще не приходилось именно с этим иметь дела, так что много не подскажу. Вот, например, статья http://habrahabr.ru/post/112286/

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

Это сообщение отредактировал(а) Arantir - 17.6.2013, 22:25


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Cript777
  Дата 18.6.2013, 03:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 30.10.2012

Репутация: нет
Всего: нет



В общем решил воспользоваться этим: http://digitarald.de/project/fancyupload/3...ase/photoqueue/ , хотя в IE почти не работает..
PM MAIL   Вверх
Vas
Дата 18.6.2013, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



Цитата(Cript777 @  17.6.2013,  22:02 Найти цитируемый пост)
не совсем, нужна функция которая показывает сколько загрузилось файла   

Дык она там вроде как есть 
Код

 // функция для анимации процесса загрузи
    uploadProgress = function(id, fileName, loaded, total){
        var right = _this.find('.right1[process="'+id+'"]'), // найдем созданый контейнер
            procent = Math.round(loaded / total * 100);         // рассчитываем процент загрузки
            right.find('.bar').css('width',procent+'%');     




--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Sanchezzz
Дата 18.6.2013, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: нет
Всего: 60



Это работает только если мы используем HTML5.. IE < 9 в пролете + старые версии Оперы туда же.
В 3.0.1 правки какие-то были на улучшения, я ее уже позже нашел у себя на hdd, и уже маленько жилею, что не использовал в статье.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL Skype GTalk   Вверх
Vas
Дата 19.6.2013, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: нет
Всего: 28



Цитата(Sanchezzz @  18.6.2013,  14:22 Найти цитируемый пост)
 и уже маленько жилею, что не использовал в статье. 

Дык может исправишь данное упущение ;)


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Extensions | Следующая тема »


 




[ Время генерации скрипта: 0.1393 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.