如何登录并上传文件

package main
 
import (
	"fmt"
	"os"
 
	"github.com/jlaffaye/ftp"
)
 
func main() {
	// FTP服务器地址
	ftpServer := "ftp.example.com"
	// 用户名和密码
	ftpUser := "username"
	ftpPass := "password"
 
	// 连接FTP服务器
	client, err := ftp.Connect(ftpServer)
	if err != nil {
		fmt.Println("Failed to connect to FTP server:", err)
		return
	}
	defer client.Quit()
 
	// 登录FTP服务器
	err = client.Login(ftpUser, ftpPass)
	if err != nil {
		fmt.Println("Failed to login to FTP server:", err)
		return
	}
 
	// 要上传的文件路径
	filePath := "/path/to/local/file.txt"
	// 远程目录路径
	remoteDir := "/path/to/remote/directory/"
 
	// 检查远程目录是否存在,不存在则创建
	_, err = client.List(remoteDir)
	if err != nil {
		errMkdir := client.MakeDir(remoteDir)
		if errMkdir != nil {
			fmt.Println("Failed to create remote directory:", errMkdir)
			return
		}
	}
 
	// 打开本地文件
	file, err := os.Open(filePath)
	if err != nil {
		fmt.Println("Failed to open local file:", err)
		return
	}
	defer file.Close()
 
	// 获取文件信息
	info, err := file.Stat()
	if err != nil {
		fmt.Println("Failed to get file info:", err)
		return
	}
 
	// 上传文件
	err = client.Stor(remoteDir+info.Name(), file)
	if err != nil {
		fmt.Println("Failed to upload file:", err)
		return
	}
 
	fmt.Println("File uploaded successfully.")
}