Go语言 FTP 文件上传:封装方法,实现简单高效的文件传输

本文将介绍如何使用 Go 语言编写一个简单的 FTP 文件上传方法,并将该方法封装成一个函数,方便用户调用。

package main

import (
    "fmt"
    "io/ioutil"
    "net"
    "os"
    "path/filepath"
)

func sendFileToFtpServer(destPath, srcPath string) error {
    // 读取源文件内容
    data, err := ioutil.ReadFile(srcPath)
    if err != nil {
        return err
    }

    // 连接FTP服务器
    conn, err := net.Dial("tcp", "ftp.example.com:21")
    if err != nil {
        return err
    }
    defer conn.Close()

    // 登录FTP服务器
    _, err = fmt.Fprintf(conn, "USER %s\r\n", "username")
    if err != nil {
        return err
    }
    _, err = fmt.Fprintf(conn, "PASS %s\r\n", "password")
    if err != nil {
        return err
    }
    _, err = fmt.Fprintf(conn, "TYPE %s\r\n", "I")
    if err != nil {
        return err
    }

    // 发送文件到FTP服务器
    filename := filepath.Base(destPath)
    _, err = fmt.Fprintf(conn, "STOR %s\r\n", filename)
    if err != nil {
        return err
    }
    _, err = conn.Write(data)
    if err != nil {
        return err
    }

    return nil
}

func main() {
    err := sendFileToFtpServer("/path/to/dest/file.txt", "/path/to/src/file.txt")
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
    fmt.Println("File sent successfully!")
}

使用方法:

  1. ftp.example.com 替换为您的 FTP 服务器地址
  2. usernamepassword 替换为您的 FTP 服务器用户名和密码
  3. "/path/to/dest/file.txt""/path/to/src/file.txt" 替换为您的目标路径和源文件路径
  4. 运行代码,即可将文件上传到 FTP 服务器

代码解析:

  1. 使用 net.Dial() 连接到 FTP 服务器
  2. 使用 fmt.Fprintf() 发送 FTP 命令进行登录
  3. 使用 ioutil.ReadFile() 读取源文件内容
  4. 使用 fmt.Fprintf() 发送 STOR 命令,并写入文件内容

注意事项:

  1. FTP 协议默认使用明文传输,请确保您的网络环境安全
  2. 本示例仅供参考,您可以根据实际情况进行修改和扩展

相关资源:

Go语言 FTP 文件上传:封装方法,实现简单高效的文件传输

原文地址: https://www.cveoy.top/t/topic/otZN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录