使用 Go 处理 post 请求中的多个文件
Golang不知道大家是否熟悉?今天我将给大家介绍《使用 Go 处理 post 请求中的多个文件》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
我正在使用 go 为音乐流服务编写服务器端。我需要能够处理相册上传。我希望管理员能够访问 https://www.lsjlt.com/file/imgs/upload/202404/05/mdyf0uzutbe.jpg 和一些 .mp3
歌曲文件的文件夹,单击上传并处理其余内容通过服务器。
这是一个简单的 html 页面,我用来测试此功能:
<html>
<head><title>Album Upload</title></head>
<body>
<form enctype="multipart/form-data" action="/upload" method="POST">
<input type="file" name="album" webkitdirectory directory multiple> <br>
<input type="submit" value="Upload">
</form>
</body>
</html>
我需要一个处理程序函数,它能够查看 meta.json
文件,检查其内容并根据其中的内容执行操作。 meta.json
包含我需要的所有信息。现在,我不需要关于使用 go 或其他相关内容读取 json 的详细解释。
我只需将该文件夹中的所有文件作为单独文件读取即可。相反,当我执行 request.formfile("album")
时,go 将它们全部视为单个 album
文件字段。
解决方案
可以使用请求结构体的multipartform字段来处理go中的多个文件上传。
multipartFormData := req.MultipartForm
for _, v := range multipartFormData.File["attachments"] {
fmt.Println(v.Filename, ":", v.Size)
uploadedFile, _ := v.Open()
// then use the single uploadedFile however you want
// you may use its read method to get the file's bytes into a predefined slice,
//here am just using an anonymous slice for the example
uploadedFile.Read([]byte{})
uploadedFile.Close()
}
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于Golang的相关知识,也可关注编程网公众号。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341