Я собрал небольшой персональный сайт в рельсах и дошел до того, что мне нужно иметь возможность загружать файлы. Это почти тривиальная задача и совсем не заняла времени.
То, что отнимает время - и медленно расходует мое здравомыслие - это задача предоставления пользователю индикатора выполнения загрузки. Я видел, по крайней мере, дюжину решений, и все они, похоже, имеют одну общую черту - они требуют установки модуля на веб-сервере.
Учитывая то, что я не могу контролировать свой сервер, и маловероятно, что хостинговая компания когда-либо возьмется за установку любого такого животного, я в затруднении. То, что делает это действительно сводящим с ума, является то, что вовлечение сервера в этот процесс любым способом, формой или формой, абсолютно ненужно.
Подумайте об этом: ваш браузер открывает сокет для удаленного сервера и начинает отправку данных. Ваш браузер точно знает, сколько байтов должно быть отправлено, и, благодаря магии подтверждений TCP, также знает, сколько байтов поступило на серверную сторону. Так почему же во Имя Летающего Спагетти-Монстра нет простого способа представить эти данные в Javascript без суеты с взорванным сервером?