为了账号安全,请及时绑定邮箱和手机立即绑定

golang - 如何检查 multipart.File 信息

golang - 如何检查 multipart.File 信息

Go
眼眸繁星 2021-06-19 08:11:12
当用户上传文件时,使用 r.FormFile("file") 会得到一个 multipart.File、一个 multipart.FileHeader 和一个错误。我的问题是如何只获取有关上传文件的信息,例如,它的大小,如果它是一个图像,它的维度等等。我真的不知道从哪里开始,所以任何帮助都会很棒。
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

我发现对于此类测试非常简单的另一种方法是将测试资产放置在相对于包的 test_data 目录中。在我的测试文件中,我通常会创建一个帮助程序来创建 *http.Request 的实例,它允许我在 multipart.File 上非常轻松地运行表测试(为简洁起见,已删除错误检查)。


func createMockRequest(pathToFile string) *http.Request {

    file, err := os.Open(pathToFile)

    if err != nil {

        return nil

    }

    defer file.Close()


    body := &bytes.Buffer{}

    writer := multipart.NewWriter(body)

    part, err := writer.CreateFormFile("file", filepath.Base(pathToFile))

    if err != nil {

        return nil

    }

    _, _ = io.Copy(part, file)


    err = writer.Close()

    if err != nil {

        return nil

    }

    // the body is the only important data for creating a new request with the form data attached

    req, _ := http.NewRequest("POST", "", body)

    req.Header.Set("Content-Type", writer.FormDataContentType())

    return req

}


查看完整回答
反对 回复 2021-06-21
  • 3 回答
  • 0 关注
  • 422 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信