局域网传输文件应用

article/2025/9/26 23:25:42

演示

在这里插入图片描述

说明

python制作的局域网传输文件-适用于windows平台,将电脑变为共享文件神器,手机开热点或者电脑开热点,连接后实现手机电脑一键互联,快速传输分享文件,摆脱没有数据线的烦恼,项目里面含有可执行文件以及项目源码。

实现方法

  1. 使用flask搭建局域网平台。
  2. 使用tkinter用作界面。
  3. 判断网口,排除不必要网口ip。
  4. 网址生成二维码。
  5. 手机端扫面二维码打开页面上传文件
  6. 电脑端接收文件。
  7. 电脑端共享文件,将文件复制到目录下,手机查看并下载。

部分源码

# -*- coding:utf-8 -*-
import psutil
import qrcode
from tkinter import *
from PIL import ImageTk
from flask import *
import os,json
import tkinter as tk  # 使用Tkinter前需要先导入
import threading
import tkinter.messagebox
import loggingapp = Flask(__name__)
app.config.from_object(__name__)#禁用控制台
log = logging.getLogger('werkzeug')
log.setLevel(logging.ERROR)def GetNameByEveryDir(file_dir):  # Input   Root Dir and get all img in per Dir.# Out     Every img with its filename and its dir and its path  FileNameWithPath = [] FileName         = []FileDir          = []for root, dirs, files in os.walk(file_dir):  for file in files:  FileNameWithPath.append(os.path.join(root, file))  # 保存图片路径FileName.append(file)                              # 保存图片名称FileDir.append(root[len(file_dir):])               # 保存图片所在文件夹return FileName,FileNameWithPath,FileDir# 首页
@app.route('/')
def index():render_template('up_video.html',file_list=ret,all_file=len(FileName),pages=page,all_page=all_page)@app.route('/next_page/<int:page>/', methods=['GET'])
def next_page(page):filepath = os.path.join(os.path.dirname(os.path.abspath('__file__')),'phone_win_file\\')if not os.path.exists(filepath):os.makedirs(filepath)FileName,FileNameWithPath,FileDir = GetNameByEveryDir(filepath)limit = 10all_page=int(len(FileName)/limit)+1pages = int(page)if pages<=0:pages=1elif pages>=all_page:pages=int(all_page)                                   else:pages=int(page)                            start = (pages - 1) * limit                end = pages * limit if len(FileName) > pages * limit else len(FileName)                             ret = [FileName[i] for i in range(start, end)]return render_template('up_video.html',file_list=ret,all_file=len(FileName),pages=pages,all_page=all_page)@app.route('/phone_win_file/<file_name>', methods=['GET'])
def phone_win_file(file_name):try:except Exception as e:return json.dumps({'code': "502"}, ensure_ascii=False)@app.route('/up_video', methods=['post'])
def up_video():try:except Exception as e:print(e)return json.dumps({'code': "502"}, ensure_ascii=False)def run_sever():app.run(host='0.0.0.0',port=5000,debug=False,use_reloader=False)def start():global l,l1,count,ip_list,len_list,chioseif chiose==0:thre = threading.Thread(target=run_sever)   # 创建一个线程运行服务器thre.setDaemon(True)thre.start()  # 运行线程    l1.config(text=ip_list[count])img=qrc_img(ip_list[count])IMG=ImageTk.PhotoImage(img)l.config(image=IMG)  l.image=IMG #keep a reference  count+=1chiose=1tkinter.messagebox.showinfo('成功','已开启服务!')else:tkinter.messagebox.showinfo('提示','服务已运行!')def getIP():"""获取ipv4地址"""dic = psutil.net_if_addrs()ipv4_list = []for adapter in dic:#网线端口:以太网,wifi端口:WLANif '以太' in adapter or 'WLAN' in adapter:snicList = dic[adapter]for snic in snicList:if snic.family.name == 'AF_INET':ipv4 = snic.addressif ipv4 != '127.0.0.1':ipv4_list.append("http://"+ipv4+":5000")if len(ipv4_list)>=1:return ipv4_list[::-1],len(ipv4_list)else:return []def qrc_img(url):  qr=qrcode.QRCode(version = 2,error_correction = qrcode.constants.ERROR_CORRECT_L,box_size=11,border=2,)qr.add_data(url)qr.make(fit=True)img = qr.make_image()return imgdef show_qrc():passdef open_dir():filepath = os.path.join(os.path.dirname(os.path.abspath('__file__')),'phone_win_file\\')if not os.path.exists(filepath):os.makedirs(filepath)os.system("start explorer %s" % filepath)def about():tkinter.messagebox.showinfo('帮助','开启服务后手机扫描显示的二维码等待页面打开,\n页面打不开说明有多个网口,\n需要切换二维码进行尝试。\n进入页面查看电脑下的文件,点击文件名下载文件到手机。\n选择手机页面中的上传文件将手机文件传到手机。\n作者:Try it.(Cxk)')def connect():import webbrowserwebbrowser.open("https://cxk-life.blog.csdn.net/")if __name__ == '__main__':root=Tk()# 设置窗口大小winWidth = 600winHeight = 400# 获取屏幕分辨率screenWidth = root.winfo_screenwidth()screenHeight = root.winfo_screenheight()x = int((screenWidth - winWidth) / 2)y = int((screenHeight - winHeight) / 2)# 设置主窗口标题root.title("局域网传输文件")# 设置窗口初始位置在屏幕居中root.geometry("%sx%s+%s+%s" % (winWidth, winHeight, x, y))# 设置窗口图标root.iconbitmap("./img/cxk.ico")# 设置窗口宽高固定root.resizable(0, 0)# 添加菜单栏f = tkinter.Menu(root)root['menu']=ff.add_command(label='关于',command=about)f.add_command(label='联系作者',command=connect)#增加背景图片photo = tk.PhotoImage(file="./img/no_bg.png")theLabel = tk.Label(root,text="",justify=tk.LEFT,image=photo,compound = tk.CENTER)theLabel.place(relx=0.8, rely=0.63, anchor=CENTER)count=0chiose=0ip_list,len_list=getIP()Button(root,text='开启服务',command=start).place(relx=0.8, rely=0.08, anchor=CENTER)Button(root,text='更换网址',command=show_qrc).place(relx=0.7, rely=0.2, anchor=CENTER)Button(root,text='文件所在',command=open_dir).place(relx=0.9, rely=0.2, anchor=CENTER)l=Label(root)l.place(relx=0.3, rely=0.5, anchor=CENTER)l1=Label(root)l1.place(relx=0.3, rely=0.05, anchor=CENTER)root.mainloop()

需要完整源码请点击链接自行下载或联系我


http://chatgpt.dhexx.cn/article/QdDJFvfm.shtml

相关文章

局域网传输文件的几种方法盘点

共享文件夹&#xff08;速度一般是1~2M每秒&#xff09; 1、选中要共享的文件夹&#xff0c;按照如图所示操作 2、Windows通过ipconfig查看ip地址 3、在要下载的电脑上&#xff08;同一个局域网&#xff09;&#xff0c;如图所示操作 \共享文件的那个机器局域网ip 4、看到…

FTP-----局域网内部传输文件(1)

在日常工作中&#xff0c;如果需要跨设备的传输文件&#xff0c;您需要借助USB数据线或者借助应用实现无线互联&#xff0c;将所需文件传输到对应设备&#xff0c;这一来一去&#xff0c;花费的时间与精力变多了&#xff0c;那么&#xff0c;怎么实现不使用第三方软件来实现跨设…

MySQL数据库下载及安装教程(最最新版)

MySQL数据库下载及安装教程&#xff08;最最新版&#xff09; 一、下载mysql数据库二、安装Mysql三、验证是否安装成功&#xff08;一&#xff09;、命令提示符cmd窗口验证&#xff08;二&#xff09;、MySQL控制台验证 一、下载mysql数据库 进入MySQL官方网站&#xff08;htt…

Landsat 数据下载与预处理

文章目录 前言一、Landsat数据下载1.数据介绍2.数据下载2.1 下载网站2.2 下载步骤 二、Landsat数据预处理1.辐射校正2.大气校正3.影像拼接、裁剪 三、Landsat 提取水体参考资料 前言 主要介绍Landsat数据下载及预处理。 一、Landsat数据下载 1.数据介绍 Landsat Missions L…

批量下载中国气象科学数据共享网的数据

由于项目需要&#xff0c;需要下载站点的降雨量和蒸散发数据&#xff0c;但是这网站做的又特别不人道&#xff0c;超过50M数据量无法直接下载&#xff0c;需要定制&#xff0c;定制后说提供ftp下载&#xff0c;尼玛打开定制记录&#xff0c;一条条记录在哪摆着&#xff0c;说好…

14个开源数据分析项目,附数据集下载链接!

对于那些对数据&#xff0c;数据分析或数据科学感兴趣的人&#xff0c;提供一份可以利用业余时间完成的数据科学项目清单&#xff0c;一共14个&#xff01; 项目分为三种类型&#xff1a; 可视化项目探索性数据分析&#xff08;EDA&#xff09;项目预测建模 可视化项目 最容易上…

GIS数据在哪里下载

根据数据的不同类型&#xff0c;本次数据合集将数据分为七个部分&#xff0c;包括空间地理数据、自然灾害数据、天气气候数据、人口统计数据、海洋环境数据、生态环境数据和战争统计数据。 闲话不多说&#xff0c;开始我们的网站合集&#xff01; 1 空间地理数据 名称&#…

数据库的下载

MySQL数据库的下载 MySQL官方提供了两个不同的版本&#xff1a; 1、社区版 &#xff08;MySQL Commimity Server&#xff09;免费&#xff0c;MySQL不提供任何技术支持&#xff08;本文操作选用社区版&#xff09; 2、商业版&#xff08;MySQL Enterprise Edition&#xff09;…

Harvard Dataverse 数据批量下载

最近看论文&#xff0c;看到了自己需要的数据&#xff0c;就想着下载下来&#xff0c;结果发现这个东西并不好下载&#xff0c;也可能是自己的知识存储不够&#xff0c;捣鼓了一天&#xff0c;终于下载下来了。这里记录一下&#xff0c;方便以后查阅。 Harvard Dataverse 数据批…

NASA全球GPM免费降雨数据下载(2021年11月更新)

文章目录 前言一、申请注册NASA Earth Data账户二、查找数据三、开始下载0.下载前言1.站点管理2.添加Edge浏览器代理 总结 前言 NASA提供的免费地学数据简直是造福社会和广大科研工作者&#xff0c;不得不说这些方面我们仍需努力。 回归正题&#xff0c;提到高精度的历史降水数…

Landsat数据下载(批量下载)

隶属于美国地质调查局&#xff08;USGS&#xff09;的Landsat卫星&#xff0c;从20世纪70年代开始&#xff0c;提供了大量的卫星遥感数据。目前仍然在轨运行的Landsat系列卫星为Landsat-8和Landsat-9。 数据下载网站为&#xff1a;https://earthexplorer.usgs.gov/ 在该网站&a…

气象数据下载网站(存档)

https://www.cnblogs.com/icydengyw/p/12664027.html 1、http://weather.uwyo.edu/upperair/seasia.html 需要提前查明站点ID 2、https://rp5.ru/ 3、http://www.meteomanz.com/ 2005年至今&#xff0c;包含原始报文&#xff0c;数据十分详细 4、http://data.cma.cn/ 中…

全球地震数据下载方法

美国地质调查局地震数据 这份数据是美国 1977 年设立USGS 地震灾害计划&#xff0c;由美国地质调查局及其合作伙伴监测和报告地震&#xff0c;评估地震影响和危害&#xff0c;并对地震的成因和影响进行研究。 数据下载网址如下&#xff0c;访问该网站需要魔法 https://earthqua…

GEO数据下载方法

方法一&#xff1a;直接从官网下载&#xff0c;手动 GEO&#xff08;GENE EXPRESSION OMNIBUS&#xff09;&#xff0c;https://www.ncbi.nlm.nih.gov/geo/&#xff0c;由美国国立生物技术信息中心NCBI创建维护的&#xff0c;是个公开的基因数据库&#xff0c;包含了测序和芯片…

Landsat数据下载

Landsat数据下载步骤 0 Landsat数据介绍1 下载地址2 下载步骤2.1 检索数据2.1.1 设置地点&#xff0c;有多种方法2.1.2 选择时间范围2.1.3 在Data Sets界面选择传感器&#xff08;卫星或者传感器的名称&#xff09; 2.2 限定云量2.3 下载数据 这是个老生常谈的话题了&#xff0…

Earthdata(NASA)网站数据使用IDM(Internet Download Manager)下载器批量下载方法(MERRA-2为例)

最近给亲近的人写了教程&#xff0c;想着也给大家分享一下。 MERRA-2 网址&#xff1a; GES DISC 这个网址是下载MERRA-2 instM_3d_asm_Np类型的数据文件&#xff0c;具体各部分字母代表什么&#xff0c;看下载列表中的MERRA2.README.pdf。 1. 打开网址&#xff0c;注册账号。…

下载数据

下载数据 如今的社会的信息已经不能用氢弹大爆炸来形容了&#xff0c;信息的海量&#xff0c;多的难以置信&#xff0c;且大多未经过仔细检查&#xff0c;所以就需要对信息进行分析。 接下来我们将可视化两种常见格式存储的数据&#xff1a;CSV和JSON。 将使用Python模块csv来…

常见目标跟踪数据集下载链接整理(更新中)

搜罗一下&#xff0c;感觉没人把常见的目标跟踪数据集下载链接汇总整理的&#xff0c;这里就整理一下&#xff0c;因为有些网址很难打开&#xff0c;这里也是想方便之后大家获取&#xff0c;来看看吧&#xff01;我就从大佬图中来找几个吧&#xff01;因为不是全接触过&#xf…

数据集下载

1、直接下载pytorch官方现成的数据集&#xff1a; #数据集下载,训练集 trainset torchvision.datasets.name(root./data,trainTrue,downloadTrue,transformtransformer) #数据集导入 trainloader torch.utils.data.DataLoader(trainset,batch_size36,shuffleTrue,num_worker…

NHANES数据库数据下载

今天跟大家分享一下如何用R包nhanesA下载NHANES数据 以一个简单的研究目的为例&#xff1a;使用NHANES数据库中的数据构建一个舒张压的预测模型。 根据该研究目的&#xff0c;整理纳入分析的周期和变量&#xff1a; ①研究周期&#xff1a;2013-2014年&#xff1b; ②因变量…