gpt4 book ai didi

go - 在 Golang 中处理 Http 上传 Zip 文件

转载 作者:行者123 更新时间:2023-12-05 04:37:40 26 4
gpt4 key购买 nike

我正在使用 golang net/http 包通过 postman 检索上传的 zip 文件。附件文件link .它不是危险文件。请随时查看。

开发环境

  • 本地机器 m1 macbook pro golang 1.17.2 - 没问题
  • 服务器 docker 镜像 golang:1.17.5-stretch - 遇到问题。

捕获 post 表单 transSourceFile 文件的代码。

func HandleFileReqTest(w http.ResponseWriter, req *http.Request, params map[string]string) err {

if err := req.ParseMultipartForm(32 << 20); err != nil {
return err
}

file, header, err := req.FormFile("transSourceFile")
if err != nil {
return err
}
defer file.Close()
fmt.Println("header.Size:", header.Size)
return nil
}

我试过下面的代码也没用

func HandleFileReqTest(w http.ResponseWriter, req *http.Request, params map[string]string) err {
if err := req.ParseForm(); err != nil {
return err
}
req.ParseMultipartForm(32 << 20)
file, header, err := req.FormFile("transSourceFile")
if err != nil {
return err
}
defer file.Close()
fmt.Println("header.Size:", header.Size)
return nil
}

结果:本地机器的文件大小与原始文件相同。具有 golang:1.17.5-stretch 的服务器与原始文件相比得到了不同的文件大小。

因此,我无法解压服务器中的文件。谁能帮忙?

最佳答案

您需要将表单文件复制到实际文件中:

f, err := os.Create("some.zip")
defer f.Close()
n, err := io.Copy(f, file)

关于go - 在 Golang 中处理 Http 上传 Zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70690970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com