【问题标题】:Beego: how to create an upload form to store files in MySQL database?Beego:如何创建上传表单以将文件存储在 MySQL 数据库中?
【发布时间】:2015-01-20 14:44:24
【问题描述】:

我正在beego中制作一个Web应用程序。我是 go 和 beego 的新手。我想在mysql数据库中保存一个pdf文件。在php中我们可以很容易地做到这一点,但在beego中我遇到了问题。

  1. Mysql 类型 blob 用于存储 pdf 文件。但是在 go blob 中不是一个有效的类型。那么我应该在go中使用什么?我在为 mysql 表制作模型时遇到了这个问题。

  2. 如何解析html表单获取pdf文件?我只知道 GetString 和 GetInt 函数,但是如何从beego控制器中的html表单获取文件类型?

【问题讨论】:

    标签: mysql go blob beego


    【解决方案1】:

    根据the Beego Documentation,可以使用GetFile

    file, header, err := ctrlr.GetFile("input_name_in_markup")
    

    必须enctype="multipart/form-data" 属性应用于您的 HTML 表单,以便上传文件。

    此外,BLOB 类型可以表示为 []byte 切片。一些包定义了一个Blob 类型,它是[]byte 的别名——例如:type Blob []byte。您必须检查您正在使用的包以验证它是否有一个。否则,请使用[]byte

    【讨论】:

    • 感谢您的回答。是的,这对我有帮助。但我坚持获取文件内容以保存在数据库中。文件是 multipart.File 类型,但我需要 []byte。我不想将此文件保存在文件系统中。只想将其数据保存到数据库中。有什么帮助吗?
    • multipart.File 实现了io.Reader 接口。这意味着您可以像读取普通文件一样将其读入字节缓冲区。
    • 能否提供一些通过multipart.File读取文件内容的教程链接。无法将其与 mysql 合并。我能够读取文件内容,但无法将其写入数据库。
    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2020-06-10
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多