Как скопировать несколько файлов с сервера на локальный жесткий диск за один запрос http с помощью C ++? - PullRequest
1 голос
/ 25 июня 2009

Как скопировать группу файлов с сервера на локальный жесткий диск через веб-приложение C ++ в одном запросе? Это своего рода загрузка массовых файлов на локальный компьютер с сервера. Я предполагаю, что в Java вы могли бы сделать это через ZipInputStream и GZipInputStream.

Возможно ли достичь этого полностью с помощью серверного кода? Или для выполнения массового копирования файлов потребуется клиент, работающий на локальном компьютере?

Ответы [ 2 ]

1 голос
/ 14 июля 2009

Скажем, у вас есть расширение сервлета Java / ISAPI, которое принимает запросы в форме

http://server:port/fileserver?f=FILE1&f=FILE2&.....&f=FILEN

После получения такого запроса код на стороне сервера может, используя zlib, упаковать все файлы в zip-файл и отправить zip-файл в качестве ответа HTTP, указав Content-Type, Content-Length, Last-Modified, и т.д.

Примечание: если вы используете ISAPI на IIS6 и выше, вы также можете добавить это содержимое в кэш ответов режима ядра IIS.

0 голосов
/ 25 июня 2009

Если пользователь знает об этом и файлы не нужны для рендеринга сайта, вы можете поместить их в архив и получить ссылку с вашего сайта (или сделать что-то вроде sourceforge, просто перенаправить в архив и браузер). загружает его. Для архивации вы можете использовать zlib . Просто отправьте Content-type как gzip и отправьте данные (здесь из stdin)

int ret;

/* avoid end-of-line conversions */
SET_BINARY_MODE(stdin);
SET_BINARY_MODE(stdout);

ret = def(stdin, stdout, Z_DEFAULT_COMPRESSION);
if (ret != Z_OK)
    zerr(ret);
return ret;

Если вы пытаетесь отправить всю страницу (HTML, CSS, JS, IMG) как одну, все эти файлы можно вставить в HTML, даже изображения. (см. это ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...