相关疑难解决方法(0)

计算多部分表单帖子的内容长度

我正在尝试上传文件而不将其加载到内存中,如下所示。Content-Length在这种情况下,像S3 这样的服务需要一套。是否有内置的go-lang来做到这一点,或者我必须自己计算它。

package main

import (
    "io"
    "mime/multipart"
    "net/http"
    "os"
    "path/filepath"
)

func newfileUploadRequest(uri string, params map[string]string, paramName, path string) (*http.Request, chan error, error) {
    file, err := os.Open(path)
    if err != nil {
        return nil, nil, err
    }
    bodyReader, bodyWriter := io.Pipe()
    multiWriter := multipart.NewWriter(bodyWriter)
    errChan := make(chan error, 1)
    go func() {
        defer bodyWriter.Close()
        defer file.Close()
        part, err := multiWriter.CreateFormFile(paramName, filepath.Base(path))
        if err != nil {
            errChan <- err
            return
        }
        if _, err := io.Copy(part, …
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
1164
查看次数

标签 统计

go ×1