我正在尝试通过连接到mongoose Web服务器的Web GUI下载压缩文件。我认为天真的方法是将ifstream传递给ostream响应:
...
std::stringstream zip_location;
zip_location << path << "/" << timestamp << ".tar.gz";
std::ifstream zip_file(zip_location.str());
if(zip_file){
// Enters here fine
request.set_response_content_type("application/x-tar-gz");
request.add_response_header(new http_header_fields::cache_control_no_cache);
request.out() << zip_file;
return true;
}
...
但是,我得到的响应只是一个编码字符串:MHg3ZjRmYTk5Y2RhYjA=
,但我希望浏览器下载zip文件。
值得注意的是我使用的是较旧版本的猫鼬,我似乎无法在examples中找到任何解决方案。
答案 0 :(得分:0)
事实证明,确实在 var mywindow = window.open('', 'PRINT', 'height=5100,width=1086');
mywindow.document.write('<html><head><title>' + document.title + '</title>');
mywindow.document.write('<link rel="stylesheet" href="App_Themes/Basic/Share/Workflow.css" type="text/css" />');
mywindow.document.write('</head><body >');
mywindow.document.write("SomeData");
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10*/
setTimeout(function(){ mywindow.print(); mywindow.close();}, 2000);
类中实现了一个下载文件的虚函数。您需要做的就是传递与文件路径对应的字符串。
request
希望这很有帮助。