LOCALTRANSFER(1)

NAME

LocalTransferA fast cross-platform HTTP file server (轻量小巧快速上手的跨平台 HTTP 文件服务器互传文件)

SYNOPSIS

$https://github.com/Illusionna/LocalTransfer/releases

INFO

478 stars
14 forks
0 views
JavaScriptDeveloper Tools

DESCRIPTION

A fast cross-platform HTTP file server (轻量小巧快速上手的跨平台 HTTP 文件服务器互传文件)

README


Go Local Transfer

一个快速上手的跨平台 HTTP 文件服务器 | @Illusionna

截图

简介

Go Local Transfer 是一个 HTTP 文件服务器,具备图形化界面,支持 Windows、Linux、macOS 三种操作系统,可用于局域网(或互联网)文件传输。

使用

Releases 发行版下载相应的压缩包,解压后得到 GoTransfer 和 goer 两个程序。GoTransfer 是 GUI 图形化软件,goer 是 CLI 终端命令行程序,可根据自己的需要执行其中任意一个即可。

双击 GoTransfer 软件

终端执行 goer 程序

编译

运行环境:Golang 1.23.0、Wails 2.10.0、Nodejs 20.12.2、64 位操作系统

下载仓库代码:

git clone https://github.com/Illusionna/LocalTransfer.git

仓库代码默认构建 GUI 图形化软件,在终端依次执行指令:

go mod init GoTransfer
go mod tidy
wails build

输出的二进制可执行程序在 ./build/bin 目录。

除此之外,若想构建 CLI 命令行程序,先删除 gui.go 文件(或重命名为 gui.py emmmm 随便一个非 go 文件的名字就行啦),然后创建一个名为 cli.go 的文件,并将如下代码粘贴进去:

package main

import ( "os" "fmt" "flag" "net/http" "path/filepath" )

var __HOST_IPv4 = flag.String("ip", GetLocalIPv4Addresses(), "") var __HOST_PORT = flag.String("port", "8888", "") var __SHARE_DIR = flag.String("share", ".", "") var __UPLOAD_DIR = flag.String("save", *__SHARE_DIR, "") var __MAX_SIZE = flag.String("max", "1.2 GB", "") var __LOGIN_PASSWORD = flag.String("login", "", "") var __VERSION = flag.Bool("version", false, "")

func main() { flag.Usage = func() { fmt.Printf("命令行示例\n") fmt.Printf(" e.g. 共享文件夹, 且限制最大文件大小, 程序放行在主机端口\n") fmt.Printf( >>> %s -share "C:\Users\Zolio Marling\Desktop" -max "36 MB" -port 443, filepath.Base(os.Args[0])) fmt.Printf("\n\n") fmt.Printf("全部参数解释\n") fmt.Printf(" -version\n 查看软件版本及其他信息\n") fmt.Printf(" -ip (string)\n 服务器 IPv4 地址 (默认 "%s")\n", *__HOST_IPv4) fmt.Printf(" -port (string)\n 服务运行的端口号 (默认 "%s")\n", *__HOST_PORT) fmt.Printf(" -share (string)\n 想要共享出去的文件夹路径 (默认 "%s" 当前工作目录)\n", *__SHARE_DIR) fmt.Printf(" -save (string)\n 上传的文件保存到的位置 (默认 "%s" 与共享目录路径相同)\n", *__UPLOAD_DIR) fmt.Printf(" -max (string)\n 限制上传文件的最大尺寸 (默认 "%s")\n", *__MAX_SIZE) fmt.Printf(" -login (string)\n 前端登录密码 (默认 "%s" 为空不需要登录)\n", *__LOGIN_PASSWORD) }

flag.Parse()

if *__VERSION {
    fmt.Println("Go Local Transfer App v5")
	fmt.Println("协议: MIT License")
	fmt.Println("作者: @Illusionna")
	fmt.Println("隶属: Jarvis Engineering Tool")
	fmt.Println("仓库: https://github.com/Illusionna/LocalTransfer")
	fmt.Println("主页: https://orzzz.net")
	fmt.Println("邮箱: www@orzzz.net")
    os.Exit(0)
}

HOST_IPv4 = *__HOST_IPv4
HOST_PORT = *__HOST_PORT
SHARE_DIR = *__SHARE_DIR
UPLOAD_DIR = *__UPLOAD_DIR
MAX_SIZE = *__MAX_SIZE
LOGIN_PASSWORD = *__LOGIN_PASSWORD

fmt.Printf("共享目录: \"%s\"\n", SHARE_DIR)
fmt.Printf("保存位置: \"%s\"\n", UPLOAD_DIR)
fmt.Printf("限制最大文件大小: %s\n", ConvertStorageUnit(ParseStorageUnit(MAX_SIZE)))
if LOGIN_PASSWORD != "" { fmt.Printf("登录密码: \"%s\"\n", LOGIN_PASSWORD) }
fmt.Println("")
fmt.Printf("本地回环 --> http://localhost:%s\n", HOST_PORT)
fmt.Printf("局域网地址 --> http://%s:%s\n", HOST_IPv4, HOST_PORT)
fmt.Println("")
fmt.Printf("查看帮助文档 >>> %s --help\n", filepath.Base(os.Args[0]))
fmt.Printf("按住 CTRL + C 终止进程...\n\n")

RegisterRouter()

http.ListenAndServe(":" + HOST_PORT, nil)

}

然后在终端执行指令即可构建 CLI 命令行工具。

go build -o goer.exe -ldflags="-s -w" cli.go types.go handler.go utils.go

趋势

Star History Chart

开源致谢

谢谢我就好啦~ 如果该项目帮助到你,欢迎给我点赞!🤭

SEE ALSO

clihub5/7/2026LOCALTRANSFER(1)