前言
不知道你是否有过这样 的需求,在局域网传输文件,苦于没有好的软件支持,或者只能单向传输,updog可以完全解决这种问题
安装
pip3 install updog
updog是python中的一个第三方库
使用
updog
这里注意 updog 要在可以读写的路径下面运行,否则访问会出错,或者启动就会报错
如果你不想切换到路径去运行,也可以使用-d
去指定一个可读写的目录
optional arguments:
-h, --help show this help message and exit
-d DIRECTORY, --directory DIRECTORY
Root directory [Default=.]
-p PORT, --port PORT Port to serve [Default=9090]
--password PASSWORD Use a password to access the page. (No username)
--ssl Use an encrypted connection
--version show program's version number and exit
启动后你可以通过输入对应的ip地址去访问, 可以上传文件和下载,还可以预览文件,图片视频音乐,不过视频只支持 mp4格式的预览
另外这个软件在电脑上运行后手机通过浏览器也可以和电脑之间相互传文件,web确实很通用
其他
遇到几个问题,可以通过修改源码的办法来解决:
- 每次启动后(因为我用的是chrome浏览器)网页会自动翻译,这然我感到难受,所以我简单的修改了一下它的源码
路径在updog库文件updog/templates/home.html
把里面大部分显示英文的地方翻译了一下,写成中问
<html lang="en">
主要这地方要把 lang去掉
- 上传中文文件后,文件名消失,
updog/__main__.py
在 1145行
这问题主要是 secure_filename()函数会判断文件名是否安全,会把中文文件名直接去除,所以我们不使用这个函数就可以了,或者你也可以去修改 secure_filename() 这个函数的源码,网上有介绍的,不过我觉得没什么必要了,所以就没修改,因为我只是用这个做文件传输,不是搭建网站什么的
作者:Hello_wshuo