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)
}