我试图在服务器的内存中生成一个zip文件,并将其作为下载文件发送到客户端。
基本上,有一个html页面,客户可以在其中键入他想要的文件。服务器接收客户端键入的内容(通过socket.io),并在mongodb上进行搜索。此时,服务器返回一个类似的链接
<a href='#' onclick='socket.emit("generateFile", id, path); return false;'>link</a>
其中id是数据库中条目的id,path是zip中某个文件的位置。之后,该服务器应该创建一个包含具有该id的条目的json,并将其与服务器上可用的一些本地文件一起压缩。我的问题是:如何将生成的zip发送到客户端?记住:我想发送它,而不必将它保存在服务器的hdd中。在创建zip后,我尝试使用Express,但代码没有到达这一部分:
app.get('/', function(res, req)
{
res.set('Content-Type', 'application/zip')
res.send(generatedZipFile)
})
如何继续?
这是来自express静态zip实现
var contentType = mime.lookup(name);
if (contentType != 'application/octet-stream') {
res.set('Content-type', contentType);
var charSet = mime.charsets.lookup(contentType);
if (charSet) {
entryData = entryData.toString(charSet);
}
}
res.status(200).send(entryData);
您可能需要设置状态代码和mime格式。