Golang 后端发起上传文件Post
func GetPutFile() { url := `https://api.q.qq.com/api/` body := &bytes.Buffer{} writer := multipart.NewWriter(body) // 添加表单字段 writer.WriteField("access_token", "1245") writer.WriteField("appid", "1245") // 添加文件字段 file, err := os.Open("./flie/1234.jpg") // 图片路径 if err != nil { fmt.Println("无法打开文件:", err) } defer file.Close() part, err := writer.CreateFormFile("media", file.Name()) if err != nil { fmt.Println("无法创建表单字段:", err) } _, err = io.Copy(part, file) if err != nil { fmt.Println("无法复制文件:", err) } // 完成表单的创建并获取结果 writer.Close() // 发起POST请求 resp, err := http.Post(url, writer.FormDataContentType(), body) // 目标服务器的URL if err != nil { fmt.Println("请求发送失败:", err) } // 设置请求头 Content-Type resp.Header.Set("Content-Type", writer.FormDataContentType()) defer resp.Body.Close() // 处理响应结果 fmt.Println("响应状态码:", resp.StatusCode) fmt.Println(body.String()) jsons, err := io.ReadAll(resp.Body) type Obj struct { ErrCode int `json:"errCode"` ErrMsg string `json:"errMsg"` } var Objs Obj json.Unmarshal([]byte(jsons), &Objs) fmt.Println(Objs) }
549 Views