Go语言 FTP 文件上传:封装方法,实现简单高效的文件传输
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!")
}
使用方法:
- 将
ftp.example.com替换为您的 FTP 服务器地址 - 将
username和password替换为您的 FTP 服务器用户名和密码 - 将
"/path/to/dest/file.txt"和"/path/to/src/file.txt"替换为您的目标路径和源文件路径 - 运行代码,即可将文件上传到 FTP 服务器
代码解析:
- 使用
net.Dial()连接到 FTP 服务器 - 使用
fmt.Fprintf()发送 FTP 命令进行登录 - 使用
ioutil.ReadFile()读取源文件内容 - 使用
fmt.Fprintf()发送STOR命令,并写入文件内容
注意事项:
- FTP 协议默认使用明文传输,请确保您的网络环境安全
- 本示例仅供参考,您可以根据实际情况进行修改和扩展
相关资源:
原文地址: https://www.cveoy.top/t/topic/otZN 著作权归作者所有。请勿转载和采集!