V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
horseInBlack
V2EX  ›  分享创造

用剪切板和 BASE64 传输文件

  •  1
     
  •   horseInBlack ·
    coderdusk · 2022-08-16 16:30:15 +08:00 · 3598 次点击
    这是一个创建于 859 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

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

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

    在线 DEMO

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

    代码仓库

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

    截图

    上传.png

    下载.png

    使用方法

    运行

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

    上传文件

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

    下载文件

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

    文件大小限制

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

    21 条回复    2022-08-18 17:42:01 +08:00
    NewYear
        1
    NewYear  
       2022-08-16 17:15:08 +08:00
    前几天用网页版 onedrive 的“共享文件夹”功能,在网页上传了一个单文件 28G 的文件,传了 13-14 个小时。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    使用的遠端軟體是向日葵免費版不能傳輸文件、只能透過剪貼簿搞事情.
    xuelu520
        19
    xuelu520  
       2022-08-17 12:00:46 +08:00
    都能安装第三方软件了,那为啥不安装一个飞鸽传书呢?
    greatghoul
        20
    greatghoul  
       2022-08-18 14:13:07 +08:00
    挺小众的使用场景,但是挺有意思。
    xiozf
        21
    xiozf  
       2022-08-18 17:42:01 +08:00
    想起了 https://github.com/YanxinTang/clipboard-online 这个,有点类似。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2280 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.