python如何实现ftp文件传输系统

  介绍

这篇文章主要介绍了python如何实现ftp文件传输系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

最近做了一个简单的文件传输系统,基于ftp协议,使用python语言开发,虽然python里面已经有ftplib模块,可以很容易的实现ftp服务器。这次我使用的是套接字实现客户与ftp服务器之间的通讯和文件传输,客户另起一个烧瓶服务器,用于用户在浏览器端的交互。系统实现的功能有:用户登录注册,用户查看ftp服务器端文件和下载上传删除操作,支持多进程,多用户。

<强>一、登录注册

,,,,,,,,该项目使用的是mongo数据库,其实用户登录注册功能很好实现,没有什么技术细节,这里就略过了。数据库管理代码如下:

import  pymongo   得到pymongo.collection  import 收集   class  DBManager(对象):   自我,def  __init__ ():   时间=client 才能;pymongo.MongoClient (“mongodb://localhost: 27017/?   时间=self.db 才能;客户(“FTPDB")   时间=self.users 才能;self.db[& # 39;用户# 39;】   ,#保存用户登录信息   ,def  saveUserInfo(自我、帐户、密码):   时间=users 才能;self.users.find ()   for 才能;item 拷贝用户:   ,,accountDB =,项[& # 39;账户# 39;】   ,,if  accountDB ==,帐户:   ,,,return “false"   时间=data 才能;[]   userInfo 才能=,{}   用户信息才能[& # 39;账户# 39;],=,帐户   用户信息才能[& # 39;密码# 39;],=,密码   data.append才能(用户信息)   collection =,才能收集(self.db,“user")   collection.insert才能(数据)   return 才能“true"   ,def  confirmUserLoginInfo(自我、帐户、密码):   时间=users 才能;self.users.find ()   & # 39;才能& # 39;& # 39;   ,,结果状态:,1:表示初始状态,即不存在用户   ,,,,,2:表示存在该用户,密码不正确   ,,,,,3:验证成功   & # 39;才能& # 39;& # 39;   result 才能=1   for 才能;item 拷贝用户:   ,,accountDB =,项[& # 39;账户# 39;】   ,,passwordDB =,项[& # 39;密码# 39;】   ,,if  accountDB ==,帐户:   ,,,if  passwordDB ==,密码:   ,,,,result =3   ,,,:   ,,,,result =2   return 才能;结果

前端注册js代码如下:

function 注册(),{   美元,account =, (“# account") .val ();   美元,password =, (“# password") .val ();   美元,confirmPassword =, (“# confirmPassword") .val ();   ,如果(account ==, null  | |, password ==, null  | |, confirmPassword ==, null) {   警报才能(“请先输入必要信息“)   返回才能;   ,}   ,如果(password  !=, confirmPassword) {   警报才能(“密码不一致“);   返回才能;   ,}   ,var  request =, {   类型:才能“register",   账号:账号,才能   ,密码:密码   ,}   ,sendData (“http://localhost: 8080/register",请求)   }//向服务器发送数据   function  sendData (url, json), {   ,. ajax({美元   ,,url: url,,//请求的url地址   数据类型:,才能“json",,//返回格式为json   异步:才能,真的,,//请求是否异步,默认为异步,这也是ajax重要特性   ,,数据:json,,//参数的值   类型:,才能“post",,//请求方式   成功:函数才能(数据){   ,,//警报(数据)   ,,如果(data.toString (),==,“false") {   ,,,警报(“用户名已存在“);   其他,,}{   ,,,window.location.href =,“http://localhost: 8080/index";   ,,}   ,,},   错误:才能function (错误),{   ,,console.log(错误);   ,,}   ,});   }

<强>二、文件管理(文件查看,删除,上,传下载)

客户端与服务器端约定命令格式,服务器通过解析客户端命令来执行操作。

server.py   得到socket  import  *   import 操作系统,系统   import 信号   import 时间   #,全局变量   时间=HOST  & # 39; 0.0.0.0 # 39;   PORT =8686   ADDR =,(主机、端口)   时间=FILE_PATH  & # 39; . ./serverFiles & # 39;   #,处理僵尸进程   signal.signal (signal.SIGCHLD signal.SIG_IGN)   #,服务端功能类   class 服务器(对象):   自我,def  __init__ ():   self.connfd 才能=,““   ,def  do_list(自我、帐户):   #,才能获取文件列表   时间=file_list 才能;os.listdir (FILE_PATH +账户)   if 才能;not  file_list:   ,,self.connfd.send(“服务器文件库为空“.encode ())   ,才能回来   其他的才能:   ,,self.connfd.send (b" OK")   ,,time . sleep (0.1)   files 才能=,““   for 才能;file  file_list:拷贝   ,,if 文件[0],!=,& # 39;# 39;公司,以及os.path.isfile(时间+ FILE_PATH  account  +“/?,文件):   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python如何实现ftp文件传输系统