beego实现静态文件资源下载

Comdex  2014-09-05  golang

在使用beego框架进行Web应用开发时遇到要实现文件下载的功能,目前有两个实现方案

使用静态文件处理目录设置

beego.SetStaticPath("/down1", "download1") 

这样就把保存文件的目录down1映射到路径download1,当用户访问链接http://localhost/down1/123.txt
时就会请求download1 目录下的 123.txt 文件,利用这种方式可以实现文件的输出下载,但实测只是把文件
内容直接向浏览器输出,而不是访问路径后直接要求你下载该文件.

使用beego controller里的文件下载方法

假设服务器端有文件/download/ok.pdf,在controller的Get方法或Post方法里可以这样写

func (this *DownLoadController) Get() {
    this.Ctx.Output.Download("download/ok.pdf")
}

如果想自定义文件名可以这么做

this.Ctx.Output.Download("download/ok.pdf","aaa.pdf")