用剪切板和 BASE64 传输文件

2022-08-16 16:30:15 +08:00
 horseInBlack

简介

本应用可以将文件转换成 BASE64 编码,也可以将 BASE64 编码转换成文件下载。

对于一些没有互联网访问、不能传输文件只有剪切板共享访问的情况,可以利用这个工具传输文件。

在线 DEMO

https://coderdusk.com/tools/transfer-file-by-base64/

代码仓库

https://github.com/CoderDusk/transfer-file-by-base64

截图

使用方法

运行

有互联网访问的情况下可以直接打开在线 DEMO ,没有互联网访问的情况下可以直接查看网页源代码或者在 GitHub 仓库中下载源代码,源代码全部在一个 HTML 文件中,没有外部引用,单文件即可使用。

上传文件

在上传文件页面,选择文件后转换完成的编码就显示在页面上了,处理完成后会自动把结果复制到剪切板,和手动点击“复制结果”按钮一样,如果复制无效可以自行选择结果复制。

下载文件

1.如果输入完整的文件名,下载的文件就以输入的文件名为准 2.如果只输入了文件名没有文件类型后缀,会根据 BASE64 中的文件类型信息尽可能自动添加后缀 3.如果不输入文件名,文件名将会是 "下载文件"+当前时间戳,文件后缀会根据 BASE64 中的文件类型信息尽可能自动添加后缀

文件大小限制

理论上来说本工具的文件大小限制就是系统、浏览器、剪切板的长度限制,但是实际使用中文件过大很容易造成网页应用崩溃,经过多次实践发现 3M 左右是比较合适的单文件大小,如果有更大的文件可以分卷压缩后传输

3593 次点击
所在节点    分享创造
21 条回复
NewYear
2022-08-16 17:15:08 +08:00
前几天用网页版 onedrive 的“共享文件夹”功能,在网页上传了一个单文件 28G 的文件,传了 13-14 个小时。

既是传文件为主的功能,建议是支持大文件还是非常有意义的,另外我是不是 onedrive 主人,所以也没装过什么插件之类的东西……
rekulas
2022-08-16 17:26:01 +08:00
既然大文件表现不好,为何不将大文件自动压缩并分包集成到网页端一起处理呢
horseInBlack
2022-08-16 17:29:11 +08:00
@NewYear

我这个工具准确的说并不是文件传输工具,只是文件和文本编码相互转换的功能,可以用来实现传输文件的效果

使用场景也非常狭窄,正好我用到了稍微完善了一下就发出来了

上传大小不是我限制的,理论上来说可以大得多,只是我这边实践下载在比较菜的电脑上 3M 是相对稳妥的
reter
2022-08-16 17:49:08 +08:00
恰好我比较常用 createObjectURL, 有一些优化点:
- 可以用 fetch 直接下载 DataURL, 比如 fetch("data:text/plain;base64,aGVsbG8K"),省下中间转换的过程。
- 使用 createObjectURL 后,对应数据会一直存在内存中,调用 revokeObjectURL 才会释放
prudence
2022-08-16 18:12:23 +08:00
倒是给我了个思路,,我一直用 todesk 远程电脑 苦于剪切板里的截图无法传输,(文字可以的)导致我得保存图片 传过去 在打开发给别人
Tink
2022-08-16 20:32:40 +08:00
直接用 md5sum 命令的话支持的文件不是更大吗
Tink
2022-08-16 20:33:10 +08:00
哦我傻逼了,base64 命令
edis0n0
2022-08-16 21:14:10 +08:00
可是只有文本型剪贴板共享的场合你要怎么把你这个功能传过去呢
horseInBlack
2022-08-16 22:50:34 +08:00
@edis0n0

查看网页源代码,或者直接从 github 上查看源代码,复制全部源代码,都在一个 HTML 里面

到远程新建一个 HTML ,用编辑器打开把代码粘贴进去,保存

用浏览器打开 HTML
NewYear
2022-08-17 00:22:59 +08:00
@horseInBlack 嗯没事,能解决问题就好
duke807
2022-08-17 01:21:38 +08:00
我的加密工具也可以實現同樣的功能,而且可以加密防洩密

而且可以支持多個文件打包分享,支持多媒體內容直接呈現

而且可以直接 copy 帶圖片和文件的富文本網頁內容,工具可以一鍵把外鏈資源下載成本地文件,然後再分享會保險很多

開源 免安裝 加密小工具 CDEncrypt
https://www.v2ex.com/t/832302#reply2
geelaw
2022-08-17 03:15:50 +08:00
我没看懂这个工具的场景是啥,它要在什么之间传输文件?如果有互联网 /局域网 /蓝牙,直接用互联网 /局域网 /蓝牙的方式传输文件?如果没有,那么除非用外置存储否则文件是如何离开一台电脑的?如果文件不离开电脑,似乎又不需要“传输”?
Valyrian
2022-08-17 07:35:59 +08:00
你这就是一个 文件 和 base64 之间互相转换的工具,和传输没什么关系
xuelu520
2022-08-17 09:27:56 +08:00
就是一个文件转 base64 的工具,和内网传输扯不上关系。
horseInBlack
2022-08-17 09:39:02 +08:00
@xuelu520
@Valyrian
@geelaw

传输不仅仅是用 FTP/SMB 等协议传送文件或者用文件传输助手发送接收
我认为文件传输就是转移文件,就像用卡车装载硬盘和用信鸽携带 U 盘都能传输信息

如果您拥有互联网访问权限当然有非常多的传输文件的方式。
我这个应用的使用场景非常狭窄,只针对特定的场景。好处是代码简单不需要其他依赖就可以把自己放到没有公网的内网机器上。

总之,这只是一个特定场景下的小工具。
xmt328
2022-08-17 10:46:55 +08:00
我不太能理解的是一段 BASE64 的文本和一个二进制文件
在传输上有什么本质上不同么,不管是用网络还是用物理介质
我都 get 不到转换的意义
horseInBlack
2022-08-17 10:48:12 +08:00
@xmt328

有的使用环境禁止传输文件,但是允许共享剪切板
shyangs
2022-08-17 10:56:58 +08:00
@xmt328 @geelaw

〖公司 A 電腦 a 〗 遠端連線 到 〖公司 B 電腦 b 〗 再遠程到 [公司 B 電腦 c]

電腦 a 、電腦 b 可以聯公網,電腦 c 只有內網.

使用的遠端軟體是向日葵免費版不能傳輸文件、只能透過剪貼簿搞事情.
xuelu520
2022-08-17 12:00:46 +08:00
都能安装第三方软件了,那为啥不安装一个飞鸽传书呢?
greatghoul
2022-08-18 14:13:07 +08:00
挺小众的使用场景,但是挺有意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/873247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX