# web.send_file ## 功能 直接把本地文件作为 HTTP 响应发送,适合下载大文件或导出文件,避免把文件内容一次性读入 BT 动态响应字符串。 ## 语法 ```bt web.send_file(path) send_file(path) ``` ## 参数 | 参数 | 类型 | 必填 | 默认值 | 说明 | | ------ | ------ | ------ | ------ | ------ | | path | String/Fs | 是 | 无 | 要发送的本地文件路径。相对路径基于当前源码文件目录解析,`@/` 基于项目根解析。 | ## 返回值 | 类型 | 说明 | | ------ | ------ | | Bool | 设置成功返回 true;请求结束时由 Web 层发送文件。 | ## 示例 ```bt 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)`。