Golang FTP 文件上传:简单易用的方法
以下是一个示例代码,用于将文件上传到 FTP 服务器:
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"
"strings"
)
// UploadFileToFTP 将文件上传到 FTP 服务器
func UploadFileToFTP(filepath string) error {
// 打开本地文件
file, err := os.Open(filepath)
if err != nil {
return err
}
defer file.Close()
// 读取文件内容
fileContent, err := ioutil.ReadAll(file)
if err != nil {
return err
}
// 解析 FTP 服务器地址
ftpURL, err := url.Parse('ftp://ftp.example.com')
if err != nil {
return err
}
// 创建 FTP 连接
ftpConn, err := ftpURL.Dial()
if err != nil {
return err
}
defer ftpConn.Quit()
// 登录 FTP 服务器
if err := ftpConn.Login('username', 'password'); err != nil {
return err
}
// 切换到上传目录
if err := ftpConn.ChangeDir('upload'); err != nil {
return err
}
// 创建上传文件
filename := filepath.Base()
ftpFile, err := ftpConn.Create(filename)
if err != nil {
return err
}
defer ftpFile.Close()
// 上传文件内容
_, err = ftpFile.Write(fileContent)
if err != nil {
return err
}
return nil
}
func main() {
// 上传文件
err := UploadFileToFTP('/path/to/file.txt')
if err != nil {
fmt.Println('上传文件失败:', err)
return
}
fmt.Println('上传文件成功')
}
注意,此示例中使用的是标准库中的 net/url 和 net/http 包。如果您使用的是第三方 FTP 库,请根据相应库的文档进行修改。
原文地址: https://www.cveoy.top/t/topic/otZv 著作权归作者所有。请勿转载和采集!