douxian4323
douxian4323
2018-04-13 09:49

通过FTP下载文件后将文件写入磁盘时出现问题

  • ftp

The file that is written to disk is empty, but the reader is not. I do not understand where the issue is. I tried to play with a Buffer and then String() method and I can confirm that the content is fine, but using the Read() method of this library is not working.

The library I use is github.com/jlaffaye/ftp

// pullFileByFTP
func pullFileByFTP(fileID, server string, port int64, username, password, path, file string) error {
    // Connect to the server
    client, err := ftp.Dial(fmt.Sprintf("%s:%d", server, port))
    if err != nil {
        return err
    }

    // Log in the server
    err = client.Login(username, password)
    if err != nil {
        return err
    }

    // Retrieve the file
    reader, err := client.Retr(fmt.Sprintf("%s%s", path, file))
    if err != nil {
        return err
    }

    // Read the file
    var srcFile []byte
    _, err = reader.Read(srcFile)
    if err != nil {
        return err
    }

    // Create the destination file
    dstFile, err := os.Create(fmt.Sprintf("%s/%s", shared.TmpDir, fileID))
    if err != nil {
        return fmt.Errorf("Error while creating the destination file : %s", err)
    }
    defer dstFile.Close()

    // Copy the file
    dstFile.Write(srcFile)

    return nil
}
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答