Пожалуйста, обратитесь к вопросу: Возобновить контроль загрузки файлов
Теперь, чтобы найти решение для вышеуказанного вопроса, я хочу поработать над ним и разработать пользовательский элемент управления, который может возобновить процесс загрузки файла HTTP.
Для этого я собираюсь создать временный файл на сервере, пока загрузка не будет завершена. После завершения загрузки просто сохраните его в нужном месте.
Процедура, о которой я подумал:
- Создать временный файл с уникальным именем (может быть GUID) на сервере.
- Считать кусок файла и добавить его в этот временный файл на сервере.
- Продолжайте шаги с 1 по 3, пока не будет достигнут EOF.
- Теперь, если соединение потеряно или пользователь нажимает кнопку
pause
, запись файла останавливается и временный файл не удаляется.
- Повторное нажатие на кнопку «Продолжить» или повторная загрузка того же файла проверит на сервере, существует ли файл, и для пользователя:
resume
или overwrite
. ( Не уверен, как проверить, является ли это тот же файл. Также, как пошагово отправить чанки с клиента на сервер. )
- Нажатие на
resume
начнется с того места, где его необходимо загрузить, и добавит его в файл на сервере. ( Опять не уверен, как это сделать. )
Вопросы:
- Являются ли эти шаги правильными для достижения цели? Или нужны какие-то модификации?
- Я не уверен, как реализовать все эти шаги. :-( Нужны идеи, ссылки ...
Любая помощь приветствуется ...