На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Внимательно изучите правила раздела перед созданием темы
0. ПРИЛАГАЙТЕ СВОИ СКРИПТЫ.
1. Прежде чем создать топик, используйте поиск. Возможно это уже обсуждалось.
2. В топике указывайте ОС, режим работы скрипта (CLI|CGI). Очень желателен вывод лог-файлов и того места, куда у вас назначен вывод данных (STDOUT|STDERR)
3. Помните: вы знаете что вы хотите, а форумчане - нет. Поэтому следуйте простому правилу: грамотный развернутый вопрос - грамотный развернутый ответ.
Модераторы: ANDLL
  
    > Размер файла во время загрузки на сервер.
      Здравствуйте.
      Я понял, что для решения данной задачи используются два скрипта, написанных на Perl. Один грузит, а другой отслеживает изменяющийся размер. Но
      CGI.pm создает временный файл во время загрузки, а узнать имя этого временного файла перед загрузкой невозможно. Тогда я решил грузить файл не через param={'имя_поля'}; ,а с помощью STDIN. Файл создается и все казалось бы хорошо. Но как мне узнать имя файла, которое изначально было у пользователя на машине? Сейчас файл сохраняется с названием и расширением, которые я укажу в скрипте.
      И еще вопрос. Правилен мой ход мыслей?
        надо передавать имя файла, причем можно это сделать в параметре GET запроса, а читать файл из STDIN, т.е. одно другому не мешает
          Цитата Ivasik @

          Ход мыслей... правильный... ход мыслей... и так несколько циклов... И можно забыть обо всём.

          Наверное, для передачи данных вы используете протокол типа TCP\IP, в частности, наверное, HTTP. Там файл-не файл не понятно-что. Передаются сообщения, которые содержат заголовки и данные. В заголовках к данным - всякие пояснения к данным. В данных - сами данные.

          Для HTTP есть две основные тактики передачи данных: полностью и по частям (большими "пакетами").

          Сервер заранее должен знать требуемый объём и текущий принятый объём данных. Первое решается с помощью текущих доступных возможностей ESv6 с отправкой цифры\суммы полного объёма на сервер. Сервер понял, что предстоит получить столько-то байтов и не закрывает соединение с клиентом. Клиент частями шлёт данные (непрерывно, почти потоковое видео) серверу. Сервер принимает части, складирует и учитывает объём. Можно вычислить процент.

          Сообщение клиента №1: общая информация о файле с заявкой на его загрузку.
          Сообщение уважаемого сервера №1: готов\не готов.
          Дальше идёт триаомундия, чревоугодие и прочие грехи.
          Происходит параллельный\ая передача-приём сервером\ами частей большого файла и получение клиентом сообщений об успешном\неуспешном приёме (имитация пакетов TCP\IP).

          Куда и под каким именем складывать данные на сервере\ах может выяснять программа по заголовкам или начальным данным или в любом шахматном порядке. Лишь бы собрать их обратно, если нужно.

          ---------------------------------------------------------------------------------------

          Ааа... Забыл про GUI. Ну, должен быть отдельный канал, где сервер отчитывается клиенту о количестве принятого объёма данных. А на клиенте уже можно рисовать.
          Сообщение отредактировано: Tishaishii -
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0239 ]   [ 15 queries used ]   [ Generated: 28.03.24, 23:41 GMT ]