我正在尝试在服务器上的内存中生成一个zip文件,并将其作为下载文件发送到客户端。
基本上,有一个html页面,客户端键入他想要的文件。 服务器接收客户端输入的内容(通过socket.io)并在mongodb上进行搜索。此时,服务器返回类似这样的链接
<a href='#' onclick='socket.emit("generateFile", id, path); return false;'>link</a>
其中id是数据库中条目的id,path是zip中的一个文件的位置。 在那之后,该服务器应该创建一个包含具有该id的条目的json,并将其与服务器上可用的一些本地文件一起压缩。我的问题是:如何将此生成的zip发送给客户端?记住:我想发送它而不必将其保存在服务器的硬盘中。在创建zip之后我尝试使用Express但是代码没有到达这个部分:
app.get('/', function(res, req)
{
res.set('Content-Type', 'application/zip')
res.send(generatedZipFile)
})
如何进行?
答案 0 :(得分:0)
这是来自express-static-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格式。