web.send_file
web.send_file
功能
直接把本地文件作为 HTTP 响应发送,适合下载大文件或导出文件,避免把文件内容一次性读入 BT 动态响应字符串。
语法
web.send_file(path) send_file(path)
参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| path | String/Fs | 是 | 无 | 要发送的本地文件路径。相对路径基于当前源码文件目录解析,@/ 基于项目根解析。 |
返回值
| 类型 | 说明 |
|---|---|
| Bool | 设置成功返回 true;请求结束时由 Web 层发送文件。 |
示例
web.header('Cache-Control', 'public, max-age=3600') web.send_file('@/downloads/report.csv')
注意事项
- 只能在 Web 请求中调用。
- 该能力会读取本地文件,受
BT_PERMISSION_DENY=fs/BT_PERMISSION_ALLOW权限配置约束。 - 文件响应会由 Web 框架分块发送,支持 ETag、Last-Modified、条件请求和 HTTP Range。
-
web.send_file()设置后,本次请求不会写回最后表达式或print产生的动态响应体。 -
Content-Type默认按文件扩展名推断;需要覆盖时可提前调用web.header('Content-Type', value)。