go http文件下载文件名混乱:正确设置http header实现精准文件下载
使用Go语言的
包提供本地文件下载服务时,下载后的文件名经常与原始文件名不符,导致文件下载失败。本文分析了这个问题,并提供了解决方案。
问题根源
问题在于HTTP Header设置不正确。
应该设置为
,
应该使用
的格式,其中
代表文件名。
错误示例:代码中
的设置可能存在问题,导致文件名错误。
最佳实践:利用函数
go语言参考手册 中文CHM版
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。本文给大家带来Go参考手册,需要的可以来下载! Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go 语言特色 简洁、快速、安全 并行、有趣、开源 内存管理、v数组安全、编译
下载
Go语言的
包内置了
函数,可以更简洁高效地实现文件下载,并自动设置正确的HTTP Header,确保文件名准确无误。
推荐代码:使用
函数直接处理文件下载,无需手动设置Header。
其中:
是
响应写入器。
是
请求。
是要下载文件的完整路径。
使用
函数,可以避免手动设置Header带来的错误,确保下载的文件名与原始文件名一致,从而解决文件下载问题。 这是一种更可靠和推荐的实现方式。
httpContent-Type"application/octet-stream"Content-Disposition"attachment; filename=%s"%sContent-Dispositionhttp.ServeFilehttphttp.ServeFilehttp.ServeFilehttp.ServeFile(rw, req, fileFullPath)rwhttpreqhttpfileFullPathhttp.ServeFile