Content-Disposition 控制静态资源下载

1,115 阅读1分钟

浏览器访问一个静态资源时,有时会打开预览界面,有时候会弹出文件保存窗口执行下载。那么这个默认行为是否可控呢,答案是当然。

Content-Disposition

Content-Disposition是一个http 响应头字段。

可以设置的值有:

inline:预览资源

attachment: 下载资源,attachment后可接文件名称,打开的下载窗口将默认展示该文件名。

服务端实例

const http = require('http');
const fs = require('fs');
const path = require('path');

const app = http.createServer();

app.on('request', function (req, res) {

    console.log(process.cwd());
    fs.readFile(path.resolve(path.dirname(process.argv[1]),'./index.html'), function (err, data) {
        res.setHeader('Content-Disposition', 'attachment; filename="index.html"')
        res.writeHead(200);
        res.end(data.toString().toString())
    })

})

console.log('app is open on port 9000……');
app.listen('9000')

参考

developer.mozilla.org/en-US/docs/…