没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
最近做了一个简单的文件传输系统,基于ftp协议,使用python语言开发,虽然python里面已经有ftplib模块,可以很容易的实现ftp服务器。这次我使用的是socket实现client与ftp server之间的通讯和文件传输,client另起一个flask服务器,用于用户在浏览器端的交互。系统实现的功能有:用户登录注册,用户查看ftp服务器端文件和下载上传删除操作,支持多进程、多用户。 一,登录注册 该项目使用的是mongo数据库,其实用户登录注册功能很好实现,没有什么技术细节,这里就略过了。数据库管理代码如下: import pymongo from pymong
资源推荐
资源详情
资源评论
python实现实现ftp文件传输系统文件传输系统(案例分析案例分析)
最近做了一个简单的文件传输系统,基于ftp协议,使用python语言开发,虽然python里面已经有ftplib模块,可以很容易的实现ftp服务器。这次我使用的是socket实现
client与ftp server之间的通讯和文件传输,client另起一个flask服务器,用于用户在浏览器端的交互。系统实现的功能有:用户登录注册,用户查看ftp服务器端文件和下载
上传删除操作,支持多进程、多用户。
一,登录注册一,登录注册
该项目使用的是mongo数据库,其实用户登录注册功能很好实现,没有什么技术细节,这里就略过了。数据库管理代码如下:
import pymongo
from pymongo.collection import Collection
class DBManager(object):
def __init__(self):
client = pymongo.MongoClient("mongodb://localhost:27017/")
self.db = client["FTPDB"] self.users = self.db['user'] #保存用户登录信息
def saveUserInfo(self,account,password):
users = self.users.find()
for item in users:
accountDB = item['account'] if accountDB == account:
return "false"
data = [] userInfo = {}
userInfo['account'] = account
userInfo['password'] = password
data.append(userInfo)
collection = Collection(self.db,"user")
collection.insert(data)
return "true"
def confirmUserLoginInfo(self,account,password):
users = self.users.find()
'''
result状态: 1:表示初始状态,即不存在用户
2:表示存在该用户、密码不正确
3:验证成功
'''
result = 1
for item in users:
accountDB = item['account'] passwordDB = item['password'] if accountDB == account:
if passwordDB == password:
result = 3
else:
result = 2
return result
前端注册js代码如下:
function register() {
account = $("#account").val();
password = $("#password").val();
confirmPassword = $("#confirmPassword").val();
if(account == null || password == null || confirmPassword == null){
alert("请先输入必要信息")
return;
}
if(password != confirmPassword){
alert("密码不一致");
return;
}
var request = {
type:"register",
account:account,
password:password
}
sendData("http://localhost:8080/register",request)
}
//向服务器发送数据
function sendData(url,json) {
$.ajax({
url: url, //请求的url地址
dataType: "json", //返回格式为json
async: true, //请求是否异步,默认为异步,这也是ajax重要特性
data: json, //参数值
type: "post", //请求方式
success:function(data){
//alert(data)
if(data.toString() == "false"){
alert("用户名已存在");
}else{
window.location.href = "http://localhost:8080/index";
}
},
error:function (error) {
console.log(error);
}
});
}
二,文件管理二,文件管理(文件查看、删除、上传、下载文件查看、删除、上传、下载)
客户端与服务器端约定命令格式,服务器通过解析客户端命令来执行操作。
server.py
from socket import *
import os,sys
import signal
import time
# 全局变量
HOST = '0.0.0.0'
PORT = 8686
ADDR = (HOST,PORT)
FILE_PATH = '../serverFiles/'
# 处理僵尸进程
signal.signal(signal.SIGCHLD,signal.SIG_IGN)
# 服务端功能类
资源评论
weixin_38709466
- 粉丝: 5
- 资源: 969
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【岗位说明】生产副总经理岗位职责说明书.doc
- 【岗位说明】生产部岗位说明书(14个岗位).doc
- 【岗位说明】瓦抽专工岗位说明书.doc
- 【岗位说明】瓦抽队长岗位说明书.doc
- 【岗位说明】生产工人岗位职责.doc
- 【岗位说明】一致门窗厂员工奖惩制度.doc
- 【岗位说明】橡胶密封件企业岗位职责说明书.doc
- 【岗位说明】照明公司岗位职责.doc
- 【岗位说明】职位说明书机械工程师.doc
- 【岗位说明】职位说明书范本大全14个生产职位.doc
- 【岗位说明】门窗厂岗位职责02.docx
- 新能源汽车电机控制器功能规范:包括:功能列表;系统架构can;软件架构;硬件架构;EMC方案主要包括高压滤波器方案、结构布局和屏蔽方案、控制板方案、模块方案;系统接口;系统运行模式;系统功能结构;系统
- 内核级后门RootKit技术总揽pdf版最新版本
- 【岗位说明】风控部门职责及风险首席官岗位说明书.docx
- 【岗位说明】风险管理岗职位要求.doc
- 【岗位说明】风险控制岗位职责02.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功