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

用剪切板和 BASE64 传输文件

  •  1
     
  •   horseInBlack
    coderdusk 2022 年 8 月 16 日 4263 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    本应用可以将文件转换成 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 年 8 月 16 日
    前几天用网页版 onedrive 的“共享文件夹”功能,在网页上传了一个单文件 28G 的文件,传了 13-14 个小时。

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

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

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

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

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

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

    用浏览器打开 HTML
    NewYear
        10
    NewYear  
       2022 年 8 月 17 日
    @horseInBlack 嗯没事,能解决问题就好
    duke807
        11
    duke807  
       2022 年 8 月 17 日 via Android
    我的加密工具也可以同的功能,而且可以加密防密

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

    而且可以直接 copy 片和文件的富文本容,工具可以一把外源下成本地文件,然後再分享保很多

    源 免安 加密小工具 CDEncrypt
    t/832302#reply2
    geelaw
        12
    geelaw  
       2022 年 8 月 17 日 via iPhone   1
    我没看懂这个工具的场景是啥,它要在什么之间传输文件?如果有互联网 /局域网 /蓝牙,直接用互联网 /局域网 /蓝牙的方式传输文件?如果没有,那么除非用外置存储否则文件是如何离开一台电脑的?如果文件不离开电脑,似乎又不需要“传输”?
    Valyrian
        13
    Valyrian  
       2022 年 8 月 17 日
    你这就是一个 文件 和 base64 之间互相转换的工具,和传输没什么关系
    xuelu520
        14
    xuelu520  
       2022 年 8 月 17 日
    就是一个文件转 base64 的工具,和内网传输扯不上关系。
    horseInBlack
        15
    horseInBlack  
    OP
       2022 年 8 月 17 日
    @xuelu520
    @Valyrian
    @geelaw

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

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

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

    有的使用环境禁止传输文件,但是允许共享剪切板
    shyangs
        18
    shyangs  
       2022 年 8 月 17 日
    @xmt328 @geelaw

    〖公司 A a 〗 端 到 〖公司 B b 〗 再程到 [公司 B c]

    a 、 b 可以公, c 只有.

    使用的端是向日葵免版不能文件、只能透剪簿搞事情.
    xuelu520
        19
    xuelu520  
       2022 年 8 月 17 日
    都能安装第三方软件了,那为啥不安装一个飞鸽传书呢?
    greatghoul
        20
    greatghoul  
       2022 年 8 月 18 日
    挺小众的使用场景,但是挺有意思。
    xiozf
        21
    xiozf  
       2022 年 8 月 18 日
    想起了 https://github.com/YanxinTang/clipboard-online 这个,有点类似。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 02:19 PVG 10:19 LAX 18:19 JFK 21:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86