golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF

文章讲述了在使用Golang的mime/multipart库上传文件时遇到的错误,问题在于使用defer关闭writer导致数据缺少EOF。解决方案是不在使用defer,而是直接调用writer.Close()来确保数据完整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF

遇到的问题

用mime/multipart上传file和value时出现了一个问题,用postman可以正常上传file和value,但是用net/http库上传时则出现了可以上传file会失败的情况,err为unexpected EOF,证明了问题出现在自己的client代码中

问题代码

to := "http://" + host.Text + ":" + port.Text + "/blog/" + title.Text
		// PostFile(full, flab.Text, to, kind.Text, kindCn.Text)
		// 设置参数
		bodyBuf := &bytes.Buffer{
   
   }
		writer := multipart.NewWriter(bodyBuf)
		// fn, _ := filename.Get()
		part, err := writer.CreateFormFile("file", flab.Text)
		if err != nil {
   
   
			// 弹窗
			return
		}
		// io.WriteString(part, string(full))
		io.WriteString(part, string(full))

		writer.WriteField
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值