在go语言中实现将文件流传输到浏览器或写入http.ResponseWriter示例
Go  /  管理员 发布于 1个月前   85
在go语言中怎么实现将PDF或MP3等文件直接流式传输/下载到用户的网络浏览器(客户端)?
解决方案:
使用 bytes.NewBuffer() 函数将文件转换为缓冲区,然后写入 http.ResponseWriter。
代码片段摘自之前的文章:
在go语言中使用GoPDF包把html生成PDF文件示例
https://www.zongscan.com/demo333/96261.html示例代码:
func PDF(w http.ResponseWriter, r *http.Request) {
...
// 抓取生成的 receipt.pdf 文件并将其流到浏览器中
streamPDFbytes, err := ioutil.ReadFile("./receipt.pdf")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
b := bytes.NewBuffer(streamPDFbytes)
// 直接流向客户端(浏览器)
w.Header().Set("Content-type", "application/pdf")
if _, err := b.WriteTo(w); err != nil {
fmt.Fprintf(w, "%s", err)
}
w.Write([]byte("生成PDF"))
}
有兴趣的可以一试!
路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..博主 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 @ mashrdn 多切换几个节点测试,免费ssr是没那么稳..mashrdn 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 V2rayn免费节点添加上去了,youtobe无法打开网页,是怎么回事..张伟 在
科学上网翻墙之v2rayN-Core客户端免费公益节点使用教程中评论 3q!有用,不过免费节点隔天就要去git上复制新的导进去..博主 在
科学上网翻墙访问Google , 上外网神器佛跳墙VPN(永久免费)使用流程步骤中评论 该篇教程已不能用了,告知大家,免的老有老铁问我!..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号