gpt4 book ai didi

node.js & Express/读取流并写入客户端

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:45 25 4
gpt4 key购买 nike

我在服务器端有下一个代码:

client.getFile(url.substring(1, url.length), function (err, res) {
var outputStream1 = fs.createWriteStream("./tmp/" + url);
res.on('data', function (chunk) {
outputStream1.write(chunk);
});
res.on('end', function () {
outputStream1.end();
// I got the response in the parameters function. It refer to the res express param
response.setHeader("content-type", 'application/octet-stream;charset=utf-8');
response.setHeader("content-type", 'application/octet-stream;charset=utf-8');
response.setHeader("Content-Disposition", 'attachment; filename="' + fileName + '"' + "; filename*=UTF-8''" + fileName + "");
var readStream = fs.createReadStream("./tmp/" + url);
fs.stat("./tmp/" + url, function(error, stat) {
console.log("The size of the file is: " + stat.size);
})
readStream.on('open', function () {
readStream.pipe(response);
});
readStream.on('end', function () {
response.end();
});

输出为:文件大小为:5992213

现在我将请求从服务器发送到客户端,并希望将其保存到文件中,因此我在客户端执行下一步:

  var post_req = http.request(post_options, function(res) {
res.setEncoding('utf8');
var writeStream = fs.createWriteStream("C://Client//create.pdf");
fs.stat("C://ClientFile//something5.pdf", function(error, stat) {
res.pipe(writeStream);
});

但是我看到保存的文件是10.4 MB,当我打开它时,显示下一个错误:“文件内存不足”

我做错了什么?

最佳答案

在您的路由器中,设置下载文件的 url

app.get('/url-to-file.pdf', callback);

然后,在回调函数中使用 res.download,如下所示:

callback = function(req, res){
res.download('server/path/to/file');
}

您可以将其写为

app.get('/url-to-file.pdf', function(req, res){
res.download('server/path/to/file');
});

在客户端站点上只需运行 url:domain/url-to-file.pdf

大多数问题,在这个解决方案中,可以是动态生成url

关于node.js & Express/读取流并写入客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com