<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3888677</guid>
        <pubDate>Mon, 27 Mar 2023 14:57:57 +0000</pubDate>
        <title>Размер файла во время загрузки на сервер.</title>
        <link>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3888677</link>
        <description><![CDATA[Tishaishii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=380027&view=findpost&p=3338797'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Ivasik &#064; <time class="tag-quote__quoted-time" datetime="2013-07-22T16:29:30+04:00">22.07.13, 12:29</time></span><div class='quote '></div></div><br>
Ход мыслей... правильный... ход мыслей... и так несколько циклов... И можно забыть обо всём.<br>
<br>
Наверное, для передачи данных вы используете протокол типа TCP&#092;IP, в частности, наверное, HTTP. Там файл-не файл не понятно-что. Передаются сообщения, которые содержат заголовки и данные. В заголовках к данным - всякие пояснения к данным. В данных - сами данные.<br>
<br>
Для HTTP есть две основные тактики передачи данных: полностью и по частям (большими &quot;пакетами&quot;).<br>
<br>
Сервер заранее должен знать требуемый объём и текущий принятый объём данных. Первое решается с помощью текущих доступных возможностей ESv6 с отправкой цифры&#092;суммы полного объёма на сервер. Сервер понял, что предстоит получить столько-то байтов и не закрывает соединение с клиентом. Клиент частями шлёт данные (непрерывно, почти потоковое видео) серверу. Сервер принимает части, складирует и учитывает объём. Можно вычислить процент.<br>
<br>
Сообщение клиента №1: общая информация о файле с заявкой на его загрузку.<br>
Сообщение уважаемого сервера №1: готов&#092;не готов.<br>
Дальше идёт триаомундия, чревоугодие и прочие грехи.<br>
Происходит параллельный&#092;ая передача-приём сервером&#092;ами частей большого файла и получение клиентом сообщений об успешном&#092;неуспешном приёме (имитация пакетов TCP&#092;IP).<br>
<br>
Куда и под каким именем складывать данные на сервере&#092;ах может выяснять программа по заголовкам или начальным данным или в любом шахматном порядке. Лишь бы собрать их обратно, если нужно.<br>
<br>
---------------------------------------------------------------------------------------<br>
<br>
Ааа... Забыл про GUI. Ну, должен быть отдельный канал, где сервер отчитывается клиенту о количестве принятого объёма данных. А на клиенте уже можно рисовать.]]></description>
        <author>Tishaishii</author>
        <category>Perl</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3340493</guid>
        <pubDate>Fri, 26 Jul 2013 19:45:24 +0000</pubDate>
        <title>Размер файла во время загрузки на сервер.</title>
        <link>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3340493</link>
        <description><![CDATA[Diviner: надо передавать имя файла, причем можно это сделать в параметре GET запроса, а читать файл из STDIN, т.е. одно другому не мешает]]></description>
        <author>Diviner</author>
        <category>Perl</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3338797</guid>
        <pubDate>Mon, 22 Jul 2013 12:29:30 +0000</pubDate>
        <title>Размер файла во время загрузки на сервер.</title>
        <link>https://forum.sources.ru/index.php?showtopic=380027&amp;view=findpost&amp;p=3338797</link>
        <description><![CDATA[Ivasik: Здравствуйте.<br>Я понял, что для решения данной задачи используются два скрипта, написанных на Perl. Один грузит, а другой отслеживает изменяющийся размер. Но <br>CGI.pm создает временный файл во время загрузки, а узнать имя этого временного файла перед загрузкой невозможно. Тогда я решил грузить файл не через param={&#39;имя_поля&#39;}; ,а с помощью STDIN. Файл создается и все казалось бы хорошо. Но как мне узнать имя файла, которое изначально было у пользователя на машине? Сейчас файл сохраняется с названием и расширением, которые я укажу в скрипте. <br>И еще вопрос. Правилен мой ход мыслей?]]></description>
        <author>Ivasik</author>
        <category>Perl</category>
      </item>
	
      </channel>
      </rss>
	