gpt4 book ai didi

http - 如何在没有浏览器的情况下使用 go 将文件上传到服务器?

转载 作者:IT王子 更新时间:2023-10-29 02:05:07 27 4
gpt4 key购买 nike

trsp := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
Url := "https://127.0.0.1:8080"
client := &http.Client{Transport: trsp}
request, _ := http.NewRequest("POST", Url, nil)
k, _ := os.Open(nameOfFile)
request.Header.Set("Action", "download"+k.Name())
...
...
client.Do(request)

我有服务器,我需要上传一个文件到服务器。我应该如何处理请求?我认为我应该写入 request.Body,然后从服务器处理此查询

最佳答案

您需要使用"mime/multipart"包来制作http body。像这样。

http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/

func newfileUploadRequest(uri string, params map[string]string, paramName, path string) (*http.Request, error) {
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, err := writer.CreateFormFile(paramName, filepath.Base(path))
if err != nil {
return nil, err
}
_, err = io.Copy(part, file)

for key, val := range params {
_ = writer.WriteField(key, val)
}
err = writer.Close()
if err != nil {
return nil, err
}

return http.NewRequest("POST", uri, body)
}

关于http - 如何在没有浏览器的情况下使用 go 将文件上传到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136093/

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