A cross-platform file transfer tool

Overview

LocalTransformer

不要被GitHub的评定给误导,该项目的实现和js没有任何关系,虽然web文件夹中有几万行js代码...,该项目是以go语言作为服务后台,flutter框架实现前台界面,本仓库为go的后端实现,当然也打包了web前端实现,由于相较于被功能的实现,后端的代码可能100行都不到(可能仅仅1小时不到就写完了),所以重点其实也是在flutter前端实现(至少对于我这个新手而言需要蛮久的,特别是状态管理方面,前端界面的真实仓库 -> local_transfomer)

如何使用

  1. 下载压缩包
  2. 解压后得到压缩文件,压缩文件具体层级说明
  3. 运行 run/run_web.exe 使本机开启web服务,运行 run/main.exe 开启文件传输服务

说明:由于本软件的前端采取flutter编写,所以能够支持6端,但是flutter对web端的支持感觉不是很友好,本来打包一个web端就能解决文件上传和下载的功能,但是为了适配web端,疯狂出bug,我也不知如何解决,所以干脆就这样 -> web端支持下载功能,文件上传等功能则由对应平台的原生应用去实现(比如Windows的exe,安卓的apk等)。

使用效果

  • 运行 main.exe 如下:(为本机开启文件传输的后台服务) main 该服务启动后会每隔2s进行整个局域网子网的扫描,如果局域网下存在有人使用具体各端软件,那么他们会识别到该服务。

  • 运行 run_web.exe 后如下: 终端效果 桌面端可以通过下面的红色链接进入web界面,移动端可以通过链接也可以通过扫描二维码的方式进入。

  • 进入web页面效果如下: web页面 进入后会跳出一个输入框要你输入开启了文件传输服务的主机IP地址,如果想要下载目标主机的文件则输入目标主机的IP,如果不输入只需要点击外围空着的区域,则可免受该弹窗的骚扰,如果是点击取消则会再2s后继续提示你输入。 建议是直接跳过这个提示,点击第一个选项进行 软件下载。下载对应的原生应用,然后便可方便的传输文件了。当然如果仅仅是想要下载,那么web端也是可以满足的,刷新页面再次输入目标IP即可。

  • Windows桌面端效果如下:

以下呈现了文件上传和下载 windows页面 打开软件之后,会自动识别该子网内是否有开启服务,如果有,则会自动给出提示加入该文件服务器,然后文件的上传和下载服务都由该服务器实现。我们注意到桌面端是支持文件的拖拽上传的。

更多效果展示:

项目编译

本项目是go语言项目,由于release只编译了Windows端的,如果大家有Linux的端等需求,可clone代码自行编译:

cd ./main
go build main.go # 编译后台文件传输服务
cd ../run_web/
go build main.go #编译web服务

整体实现

后端思路:

  1. 使用UDP进行定期端口消息扫描(每隔2s发送udp消息到整个子网进行服务的通知),确保软件一使用就能连接上对应的服务
  2. 其余均用http实现简单的文件上传和传输服务(这个go只需要一行代码实现文件下载服务,上传服务也不超过20行...

该项目的意义:

  • 在很多情况下我有电脑和手机文件互传的需求(而每次都是使用的QQ),既然每次都是同一个局域网,那么何不自己写个软件来实现,何况QQ还限速...
  • 本来就正在做一个即时通讯的软件,文件传输功能也是该软件的一环,正好先把其中的模块一个个完成(主要是前端界面)正好这里的前端实现可以继续复用...
You might also like...

LucaMail - an Open Source,Cross Platform Email Client

LucaMail -  an Open Source,Cross Platform Email Client

LucaMail v0.0.1-beta An Awesome Cross Platform Email Client! Note : This Project Is Still in Beta Version Website . Report Bug . Request Feature . Dis

Dec 28, 2022

Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

Hacker Tools cross-platform desktop App, support windows/MacOS/LInux ....

Jan 8, 2023

Cross platform terminal app from Visual Studio Code.

Cross platform terminal app from Visual Studio Code.

CodeTerminal Standalone terminal from Visual Studio Code. Installation macOS Highly recommanded to install with homebrew. brew tap xcodebuild/custom b

Dec 21, 2022

A cross-platform systray library for Deno.

A cross-platform systray library for Deno.

deno-systray A cross-platform systray library for Deno using the go systray library. Usage import SysTray from "https://deno.land/x/systray/mod.ts";

Jul 16, 2022

A cross-platform desktop application of tools for developers

A cross-platform desktop application of tools for developers

A cross-platform desktop application of tools for developers 🌏 Online Web This website provides online version of the same tools echoo 💻 Offline Cli

Dec 24, 2022

Opensource Cross-platform Logitech® Litra Glow control

Opensource Cross-platform Logitech® Litra Glow control

Litra Opensource Cross-platform Logitech® Litra Glow control Requirements Linux sudo echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}==

Nov 19, 2022

The Slip Snapper is a cross-platform application that assists in managing an individuals’ expenses.

The Slip Snapper is a cross-platform application that assists in managing an individuals’ expenses. It will accomplish this by allowing a user to scan their receipts using optical character recognition (OCR) with a mobile device and create comprehensive expense reports.

Dec 7, 2022

A tiny cross-platform client for SQLite3, with precompiled binaries as the only third-party dependencies.

A tiny cross-platform client for SQLite3, with precompiled binaries as the only third-party dependencies.

Tiny SQLite3 A tiny cross-platform client for SQLite3, with precompiled binaries as the only third-party dependencies. A nice feature about this modul

Oct 27, 2022

A cross-platform browser extension that changes the way seasons are display on Crunchyroll.

Crunchyroll With Better Seasons Crunchyroll With Better Seasons is a cross-platform browser extension that changes the way seasons are displayed on Cr

Nov 4, 2022
Releases(1.0)
  • 1.0(Oct 6, 2022)

    说明

    解压后的目录如下:

    • run:本软件的可执行程序,main.exe运行后本机器作为文件传输的服务端,run_web.exe运行后本机器作为服务web页面的服务器。
    • static:所有上传到该服务端的文件都存储在这个文件夹。
    • web:整个web端的项目文件,启动run_web后可以通过ip+port进入。

    国内网盘

    下载链接

    Source code(tar.gz)
    Source code(zip)
    local_transformer.zip(47.08 MB)
Owner
L_B__
L_B__
An implementation of ERC1155D, a record setter for minting and transfer gas efficiency.

ERC1155D An implementation of ERC1155D, a record setter for minting and transfer gas efficiency. This contract is in alpha stage and has not been audi

null 72 Dec 26, 2022
Marry in Web3, Mint Paired Soulbound NFTs by MultiSign Flow, No transfer, No sell, a non-financial Dapp

ERC721-520 Token 是 NFT-like Soulbound Token Standard(灵魂绑定凭证) 的一种实现,是 ERC721 标准的扩展。 ERC721-520 Token 不可转让,不可售卖,一个人同时只能有一个有效 Token ERC721-520 Token 由二者通

Marry3 48 Dec 21, 2022
Basic Implementation of a Contract Wallet in Solidity. The owner can transfer Ether/ERC20 and execute transactions via low-level calls.

Contract Wallet Basic Implementation of a Contract Wallet in Solidity. The owner can transfer Ether/ERC20 and execute transactions via low-level calls

Junho Yeo 3 Jun 18, 2022
Claim $ARB airdrop of several wallets at the same time and transfer all the tokens to one address

arbitrum-airdrop-claimer Claim $ARB airdrop of several wallets at the same time and transfer all tokens to one address You need to have Node.js instal

Wizer 4 Mar 21, 2023
GetOsLocalesCrossPlatform - A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers

getOsLocalesCrossPlatform A cross platform alternative to get locales used on the platform. Works on Node, Electron, NW.js and Browsers This script is

null 1 Jan 2, 2022
A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM deffiniation and appropriate file structure.

Welcome to function-stencil ?? A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM

Ben Smith 21 Jun 20, 2022
Serve file server with single zip file as file system in Deno.

zipland Serve file server with one-single zip file in Deno. Support zip just zip32 with deflated or uncompressed serving plaintext deflate Examples Yo

Yongwook Choi 18 Nov 2, 2022
Feel free to create new file, don't hesitate to pull your code, the most important thing is that the file name here must match your nickname so that file does not conflict with other people.

Hacktoberfest Indonesia Apa Itu Hacktoberfest ? Hacktoberfest adalah acara tahunan yang bertujuan untuk mendorong berkontribusi kedalam ekosistem open

Juan Daniel 5 Dec 15, 2022
📗 How to write cross-platform Node.js code

How to write cross-platform Node.js code. Why you should care: according to the 2018 Node.js user survey, 24% of Node.js developers use Windows locall

ehmicky 1.3k Jan 3, 2023
A cross-platform AutoHotKey-like thing with TypeScript as its scripting language

suchibot A cross-platform AutoHotKey-like thing with JavaScript/TypeScript as its scripting language. Built on top of uiohook-napi and nut.js. Install

Lily Scott 79 Sep 21, 2022