Javascript 重命名node.js中的静态文件后,如何为其提供服务?
我正在创建一个node.js应用程序,用户可以在其中上传文件,以后可以下载。 我正在mongodb文档中存储文件信息(用户上载的原始文件名,…),并将该文件命名为与mongodb文档id相同的文件。现在我希望我的用户能够使用原始文件名下载该文件 我想知道的是用户何时在上发送GET请求 用户获取一个名为myOriginalfile.ext的文件 我知道节点静态和其他模块,但我不能在发送文件之前重命名它们Javascript 重命名node.js中的静态文件后,如何为其提供服务?,javascript,node.js,koa,node-static,Javascript,Node.js,Koa,Node Static,我正在创建一个node.js应用程序,用户可以在其中上传文件,以后可以下载。 我正在mongodb文档中存储文件信息(用户上载的原始文件名,…),并将该文件命名为与mongodb文档id相同的文件。现在我希望我的用户能够使用原始文件名下载该文件 我想知道的是用户何时在上发送GET请求 用户获取一个名为myOriginalfile.ext的文件 我知道节点静态和其他模块,但我不能在发送文件之前重命名它们 我使用的是KOA.JS框架。这里有一个简单的例子: 简言之: 这些文件使用MongoDB i
我使用的是KOA.JS框架。
这里有一个简单的例子:
简言之:- 这些文件使用MongoDB id作为文件名存储在
中/static
- 用户请求
- 在MongoDB中查找该ID以查找原始文件名(在上面的示例中,文件名只是硬编码为
)test.txt
- 文件
使用/static/123456
标题中设置的原始文件名作为下载提供(通过使用内容配置
),这将使浏览器将其本地存储为此.attachment(filename)
test.txt
- 这些文件使用MongoDB id作为文件名存储在
中/static
- 用户请求
- 在MongoDB中查找该ID以查找原始文件名(在上面的示例中,文件名只是硬编码为
)test.txt
- 文件
使用/static/123456
标题中设置的原始文件名作为下载提供(通过使用内容配置
),这将使浏览器将其本地存储为此.attachment(filename)
test.txt
- 以下是一个简单的示例:
简言之:
var app = require('koa')();
var route = require('koa-route');
var send = require('koa-file-server')({ root : './static' }).send;
app.use(route.get('/:id', function *(id) {
// TODO: perform lookup from id to filename here.
// We'll use a hardcoded filename as an example.
var filename = 'test.txt';
// Set the looked-up filename as the download name.
this.attachment(filename);
// Send the file.
yield send(this, id);
}));
app.listen(3012);