Day 46 文件上传下载
文件上传下载
上传
- 客户端发送文件的详细信息(文件名称,大小,md5,一个key用于表示请求类型)
- 先接受文件信息
- 判断如果是上传则开始接受文件
- 接收到文件后存储到临时地址
- 将请求数据与文件地址提交给业务逻辑
- 将业务逻辑返回的数据发送给客户端
下载
- 客户端发送请求,包含(文件名称,下载标识)
- 服务器接收到响应后,不知道文件路径,需要将请求提交给业务逻辑层
- 业务逻辑层根据文件名获取文件的路径
- 将文件路径返回给服务器
- 服务器判断业务逻辑的返回值,如果需要下载文件
- 发送文件信息
- 接收文件信息
- 发送文件数据
- 客户端接收文件数据
- 客户端对比md5值确定知否下载成功
文件的MD5 校验
主要用于保证文件的一致性,比如文件下载过程中,可能丢失数据,导致数据错误无法正确识别
- 发送方先校验原始文件得到一个md5值
- 接收方接收后也用相同的算法计算一个md5值
- 判断两端的md5值是否相同,相同则表示传输正确
服务器异常处理
实现客户端的业务逻辑
实现步骤
- 设计表
- 在modles中创建类,继承基类modle
- 在客户端提供一个功能,主要是接收用户输入的数据
- 发送请求给服务器 client中的send_request 接收请求 recv_response
- 服务器创建对应的接口函数幂函数需要注册到mapping中
- 当请求到达后悔调用对应的接口函数
- 取出请求数据request,进行逻辑判断
- 进行数据存储,如User类的save保存get_object获取数据
- 给客户端返回响应结果,必须是字典类型
注意:
客户端与服务器的字段名称必须对应
请求数据中必须包含func