一架梯子,一头程序猿,仰望星空!
Beego 框架面试题 > 内容正文

如何使用 Beego 实现文件上传和下载?


问题简答

Beego内置了专门用于处理文件上传和下载的函数,通常GetFile获取用户上传的文件,然后将文件保存到指定位置,然后通过c.Ctx.Output.Download方法向客户端输出文件流。

问题详解:

beego文件上传的例子

func (c *Controller) Upload() {
    file, _, err := c.GetFile("file") // 获取上传的文件
    if err != nil {
        c.Ctx.WriteString("Failed to get file")
        return
    }
    defer file.Close()
    // 保存文件到服务器
    fileLocation := "/path/to/your/upload/dir/" + file.Filename
    err = c.SaveToFile("file", fileLocation)
    if err != nil {
        c.Ctx.WriteString("Failed to save file")
        return
    }
    c.Ctx.WriteString("File uploaded successfully")
}

beego下载文件

func (c *Controller) Download() {
    fileName := c.GetString("filename") // 获取要下载的文件名
    fileLocation := "/path/to/your/upload/dir/" + fileName
    // 将文件作为响应返回给客户端
    c.Ctx.Output.Download(fileLocation, fileName)
}

详情教程请参考:beego文件上传和下载教程