我有一个hapi js服务器,可以下载文件。
exports.register = function(server, options, next){
server.route({
method: 'GET',
path: '/backup_balancer.zip',
config: {
auth: false,
handler: function(request, reply) {
let p = request.payload;
let filename = 'testfilename';
return reply.file(filePath, {
filename: filename
});
}
}
});
};
如果我像那样卷曲那条路线
curl -O http://localhost:8102/backup_balancer.zip
然后curl保存名为backup_balancer.zip的文件。
现在我想命名我的路线只需下载并使用它:
curl -O http://localhost:8102/download
我怎么能说卷曲,后来浏览器将文件命名为我返回的文件名:
return reply.file(filePath, {
filename: filename
});
提前谢谢。
我尝试了以下但没有成功。在路径的最后一部分之后调用该文件。任何有进一步提示的人? 我正在使用hapi 13.4.0
return reply.file(filePath).header('content-disposition', 'attachment; filename=testfile.zip;');
答案 0 :(得分:1)
您需要指定模式以及文件名才能使用此功能;但我相信问题在于你期待卷曲的行为。请参阅curl man page:"用于保存的远程文件名是从给定的URL中提取的,没有别的。"如果你给它提供文件名和模式选项,那么hapijs代码(或惰性插件代码)将设置内容处理标题,但curl不会注意那些标题。 curl为您提供了一个选项,可以指定要在下载时保存的文件名,并在一天内调用它。