我阅读了一个 pdf 文件,然后将其原始内容存储到数据库中。现在我想从数据库中读取该内容并创建一个 pdf,以便用户可以下载。
为此,我阅读了内容并将其写入扩展名为 .pdf 的文件中。但结果是一个空的 pdf 文件。
我这样做是因为我想避免将文件保存在磁盘中。
我正在使用 beego 框架。
有什么建议/帮助吗?
这是我在做什么
读取pdf文件并写入数据库
_,header,_:=c.GetFile("attachment[]")
attachment:=header.Filename
c.SaveToFile("attachment[]","/tmp/"+attachment)
content,_:= ioutil.ReadFile("/tmp/"+attachment)
s := string(content)
然后将这个's'写入数据库
从数据库读取并写入pdf文件
err := o.Raw("SELECT attachment FROM table_name WHERE id=?",id).QueryRow(&att)
if err == nil {
fmt.Println(att)
}
var data []byte
data = []byte(att)
ioutil.WriteFile("/tmp/hello.pdf",data, 0666)
最佳答案
您忽略了 GetFile
调用中的 multipart.File
。直接用那个。将其写入磁盘并再次读回是浪费时间。
在从数据库读取文件和发送给客户端之间也没有理由将文件保存到磁盘。
(您可能希望确保您的数据库经过优化以处理像这样的大型 blob。这不是大多数数据库的常见用例。)
关于database - 如何使用beego从数据库中读取内容制作pdf文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27814336/