使用 CGI C++ 下载文件

Posted

技术标签:

【中文标题】使用 CGI C++ 下载文件【英文标题】:Download file with CGI C++ 【发布时间】:2012-12-03 17:15:56 【问题描述】:

我有一页显示链接,我有一些文本数据。如何使用 C++ CGI,通过单击超链接“另存为”对话框将出现,并且我的一定数量的文本将以用户定义的路径和名称保存到用户文件系统上的文件。

实际上,主要问题是如何显示“另存为”对话框。之后,我想,一切都会变得简单。

【问题讨论】:

【参考方案1】:

只需设置适当的内容类型标题,然后输出文件。

浏览器负责其余的工作。它无法识别的任何文件类型都会导致显示Save as 对话框。

【讨论】:

你能告诉我分割文件的最佳块大小是多少,因为它可能太大而无法一次发送?我试图用谷歌搜索“最佳 html 块大小”之类的东西,但没有找到答案 您为什么认为存在一个始终最佳的单一尺寸? :) 你应该在你的谷歌查询中用 http 替换 html ;) 不是,我不认为有灵丹妙药 =) 但我必须选择一些块大小,并且我希望它不仅仅是幻数(首先我的想法战 2014 字节),但我找不到任何可基于的信息:( google 上的“http block size”也没有帮助。 好吧,我不知道。但是你可以发送比这容易得多的块【参考方案2】:

使用浏览器可以显示的 MIME 类型强制“另存为”对话框的关键是 Content-Disposition header。

【讨论】:

你能告诉我分割文件的最佳块大小是多少,因为它可能太大而无法一次发送?我试图用谷歌搜索“最佳 html 块大小”之类的东西,但没有找到答案

以上是关于使用 CGI C++ 下载文件的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 python cgi 脚本引发“文件下载”对话框

使用 netbeans 用 libcgicc.a 编译 c++

手把手写C++服务器(28):手撕CGI通用网关接口服务器代码

apache后台cgi挂掉之后现场还原

自主HttpServer实现(C++实战项目)

使用 curl (c++) 下载 zip 文件