讨论数量:
要生成 multipart.FileHeader 形式的文件流,需要使用 Go 语言标准库中的 multipart.Writer。以下是一个示例代码,假设文件路径为 /path/to/file.txt:
package main
import (
"bytes"
"mime/multipart"
"os"
)
func main() {
// 打开文件
file, err := os.Open("/path/to/file.txt")
if err != nil {
panic(err)
}
defer file.Close()
// 创建一个缓冲区,并将其作为multipart.Writer的输出目标
var buf bytes.Buffer
writer := multipart.NewWriter(&buf)
// 创建multipart.FileHeader并写入writer
part, err := writer.CreateFormFile("file", "file.txt")
if err != nil {
panic(err)
}
// 将文件内容写入part
if _, err := io.Copy(part, file); err != nil {
panic(err)
}
// 结束写入并输出生成的文件流
writer.Close()
fileBytes := buf.Bytes()
}
注意,在创建 multipart.Writer 时,需要将其输出目标设置为一个缓冲区(即 bytes.Buffer),以便在后续处理中可以获取到生成的文件流。在创建 multipart.FileHeader 时,需要指定表单字段名称(这里设置为 file)和文件名(这里设置为 file.txt)。最后通过 writer.Close () 结束写入,通过 buf.Bytes () 获取生成的文件流的字节数组。
推荐文章: