За последние 24 часа нас посетил 15431 программист и 1587 роботов. Сейчас ищут 792 программиста ...

class.upload.php и ProgressBar jQuery UI

Тема в разделе "JavaScript и AJAX", создана пользователем Mr. T, 27 мар 2011.

  1. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Добрый день,
    использую class.upload.php (http://www.verot.net/php_class_upload.htm) для загрузки изображений на сайт, а также jQuery UI. Подскажите, пожалуйста, кто знает, как их интегрировать, чтобы добавить ProgressBar.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не знаю ничего про твой скрипт, о котором ты говоришь и смотреть не буду, ибо суть одна =) механизм у нас в эпоху современного интернета - один. всегда. =)

    на стороне сервака должен крутиться скрипт, который знает об этих файлах и их текущем статусе. Аяксом мучаешь его раз в три секунды например и все. Остальное все (где искать айдишники и метод получения инфы) надо искать уже в доках по скрипту.
     
  3. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Если правильно понял, то написать скрипт, в который передать путь к файлу на сервере, его размер, а в ответ забирать процент от общего размера файла и вызывать скрипт через аякс после клика на загрузку, так?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    гугли по загрузчикам. пхп из коробки сам по себе не умеет узнать до окончания загрузки о том, что она идет.
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Mr. T
    сам php на сервере не может отдавать тебе процент загруженного файла.
    так что прогресс-бар загрузки возможен только с помощью флеш.

    хотя есть дополнения для апача/пхп, позволяющие показывать процент загруженного файла. но эти дополнения редко где встречаются. так что кроссбраузерно опять же только флеш.
     
  6. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Я попросил хостера установить вот это вот http://pecl.php.net/package/uploadprogress, но еще не разбирался как конкретно с этой библиотекой работать.
     
  7. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Доброй ночи,
    установили мне uploadprogress, начал играться. Работаю по примеру http://t.wits.sg/misc/jQueryProgressBar/demo.php, но фонарь, что выходит.

    [js]<script type="text/javascript" src="/js/jquery-1.5.1.min.js"></script>
    <script type="text/javascript" src="/js/jquery-ui-1.8.11.custom.min.js"></script>
    <script type="text/javascript">
    var progress_key = '<?= $uuid ?>';
    $(document).ready(function() {
    $('#progressbar').progressbar();
    });
    function beginUpload() {
    $('#progressbar').progressbar().fadeIn();
    var i = setInterval(function() {
    $.getJSON("/engine/modules/uploadprogress.php?id=" + progress_key, function(data) {
    if (data == null) {
    clearInterval(i);
    location.reload(true);
    return;
    }
    var percentage = Math.floor(parseInt(data.bytes_uploaded) / parseInt(data.bytes_total) * 100);
    $('#progressbar').progressbar({
    value: percentage
    });
    });
    }, 1500);
    return true;
    }
    </script>[/js]

    Файл /engine/modules/uploadprogress.php:

    PHP:
    1. <?php
    2. header ('Cache-Control: no-cache, must-revalidate');
    3. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    4. if (@$_GET['id']) {
    5.     echo json_encode (uploadprogress_get_info ($_REQUEST['id']));
    6.     die ();
    7. }
    8. if (@$_POST['UPLOAD_IDENTIFIER']) die ();
    9. $uuid = uniqid ();
    10. ?>
    HTML:
    1. <form action="" enctype="multipart/form-data" method="post" onsubmit="beginUpload();">
    2.  <input name="UPLOAD_IDENTIFIER" type="hidden" id="progress_key" value="<?= $uuid ?>" />
    3.  <table>
    4.   <tr>
    5.    <td>Изображение:</td>
    6.    <td><input name="image" type="file" value="" /></td>
    7.   </tr>
    8.   <tr>
    9.    <td></td>
    10.    <td><div id="progressbar"></div></td>
    11.   </tr>
    12.   <tr>
    13.    <td></td>
    14.    <td><input type="submit" value="Загрузить" /></td>
    15.   </tr>
    16.  </table>
    17. </form>
    Так что же все-таки не так?