为了账号安全,请及时绑定邮箱和手机立即绑定

multipart.NewReader 后无输出

multipart.NewReader 后无输出

Go
温温酱 2023-05-08 15:13:06
这可能非常简单,但到目前为止,谷歌搜索还没有找到答案。近 100% 的代码来自此处的文档: https ://golang.org/pkg/mime/multipart/#example_NewReader问题是我无法在for循环后打印任何内容,我尝试关闭任何需要关闭的内容(请参阅注释代码)但无法弄清楚那是什么。  package main    import (    "fmt"    "io"    "io/ioutil"    "log"    "mime"    "mime/multipart"    "net/mail"    "strings")func main() {    msg := &mail.Message{        Header: map[string][]string{            "Content-Type": {"multipart/mixed; boundary=foo"},        },        Body: strings.NewReader(            "--foo\r\nFoo: one\r\n\r\nA section\r\n" +                "--foo\r\nFoo: two\r\n\r\nAnd another\r\n" +                "--foo--\r\n"),    }    mediaType, params, err := mime.ParseMediaType(msg.Header.Get("Content-Type"))    if err != nil {        log.Fatal(err)    }    if strings.HasPrefix(mediaType, "multipart/") {        mr := multipart.NewReader(msg.Body, params["boundary"])        for {            p, err := mr.NextPart()            if err == io.EOF {                return            }            if err != nil {                log.Fatal(err)            }            slurp, err := ioutil.ReadAll(p)            if err != nil {                log.Fatal(err)            }            fmt.Printf("Part %q: %q\n", p.Header.Get("Foo"), slurp)            // p.Close()        }        // mr.Close()        // mr.Interface().(io.Closer).Close()        // ioutil.NopCloser(mr)    }    // This does not print    fmt.Printf("Test: %s\n", "asdfasdf")    fmt.Println("Test")}我错过了什么?我将如何解决追踪我丢失的问题的问题?
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

您目前没有办法for不返回就退出,这将使您也退出该功能。看起来你想改变

 if err == io.EOF {
      return
 }

 if err == io.EOF {
      break
 }


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信