繁体   English   中英

如何使用C ++在一个http请求中将多个文件从服务器复制到本地硬盘?

[英]How to copy multiple files from server to local hard disk in one http request using C++?

如何在一个请求中通过C ++ Web应用程序将一组文件从服务器计算机复制到本地硬盘? 这是从服务器将批量文件下载到本地计算机的一种。 我猜在Java中,您可以通过ZipInputStream和GZipInputStream做到这一点。

是否有可能完全通过服务器端代码来实现? 还是需要在本地计算机上运行的客户端来执行文件的批量复制?

假设您有一个Java servlet / ISAPI扩展,可以接受以下形式的请求

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

收到此类请求后,服务器端代码可以使用zlib将所有文件打包到一个zip文件中,并将该zip文件作为HTTP响应发送,设置Content-Type,Content-Length,Last-Modified等。

进一步的注意:如果在IIS6及更高版本上使用ISAPI,则还可以将此内容添加到IIS的内核模式响应缓存中。

如果用户意识到这一点,并且文件不需要用于网站渲染,则可以将其推送到存档中并从您的站点获得链接(或执行诸如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甚至图像中。 (参见 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM