作者:手机用户2502893675 | 来源:互联网 | 2023-02-07 16:13
这一直在我的头脑中,我希望有人可以提供帮助.如果这是一个愚蠢的问题,请原谅我,因为我是Go的新手.
我有一个结构,其中包含base64.结构看起来像这样:
type UploadedFile struct {
PartnerId string
FileName string
UploadDateTime string
FileChecksum string
FileBase64 string
}
我想取这个base64字符串,解码它然后保存它,听起来很简单,它可能是,但我很震惊.
代码如下所示:
decoder := json.NewDecoder(r.Body)
uploadedFile := models.UploadedFile{}
err := decoder.Decode(&uploadedFile)
dec, _ := base64.StdEncoding.DecodeString(uploadedFile.FileBase64)
我从哪里开始?我已经尝试了很多东西,我只是在整个文件中不断收到错误.
我已经尝试调整人们用于图像的代码,但我总是崩溃和刻录,因为文件不是图像,它可能是任何东西
提前致谢.
1> mkopriva..:
更新:我忘了提一下,如果你使用f.Write,请确保在写完之后再调用f.Sync,以确保实际存储了你编写的所有内容.该示例显示了更新的代码.
不确定您的代码示例是否不完整,因此这个答案可能无关紧要,但要将解码后的字符串字节保存到首先需要打开或创建文件的文件中,然后将字节写入其中.像这样的东西:
package main
import (
"encoding/base64"
"io"
"os"
)
var b64 = `TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=`
func main() {
dec, err := base64.StdEncoding.DecodeString(b64)
if err != nil {
panic(err)
}
f, err := os.Create("myfilename")
if err != nil {
panic(err)
}
defer f.Close()
if _, err := f.Write(dec); err != nil {
panic(err)
}
if err := f.Sync(); err != nil {
panic(err)
}
}
在这里运行:https://play.golang.org/p/SZVquhZdXC