title: golang upload via FTP and get FTP progress in a same time
body: <p>I've used <a href="http://github.com/dutchcoders/goftp" rel="nofollow">http://github.com/dutchcoders/goftp</a> to send a file via FTP. It works normally but when I want to upload a file and get that file info (at the same time) It doesn't work!</p>
  
  <pre><code>fileName := "sth"
  var err error
  var ftp *goftp.FTP
  
  if ftp, err = goftp.Connect("serverip:port"); err != nil {
      fmt.Println(err)
  }
  
  defer ftp.Close()
  
  config := tls.Config{
      InsecureSkipVerify: true,
      ClientAuth:         tls.RequestClientCert,
  }
  
  if err = ftp.AuthTLS(config); err != nil {
      //      log.Println("1", err)
  }
  
  if err = ftp.Login("userName", "pass"); err != nil {
      log.Println("2", err)
  }
  //
  if err = ftp.Cwd("/home/myDir/"); err != nil {
      log.Println("3", err)
  }
  
  var file *os.File
  if file, err = os.Open(fileName); err != nil {
      log.Println("6", err)
  }
  defer file.Close()
  
  fmt.Println("start")
  
  go func() {
      fmt.Println("first")
      nmp := ftp.Stor(fileName, file)
      if nmp != nil {
          log.Println("7", err)
      } else {
          fmt.Println("first is runung")
  
      }
  }()
  
  go func() {
      fmt.Println("second")
      for {
          files, nms := ftp.List(fileName)
          if nms == nil {
              fmt.Println(files)
          }
          time.Sleep(1 * time.Second)
      }
  }()
  
  fmt.Println("end")
  
  var mnmn string
  fmt.Scan(&amp;mnmn)
  </code></pre>
  
  <p>ftp.Stor func won't run and my code returns below outputs:</p>
  
  <blockquote>
  <pre><code>start
  end
  first
  second
  2016/05/31 13:21:38 7 &lt;nil&gt;
  []
  []
  </code></pre>
  </blockquote>