zoukankan      html  css  js  c++  java
  • 上传下载

    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件
    # 默写 TCP UDP 文件夹中的代码
    # 完成一个上传和下载文件的小程序
    # server端 :根据客户端需求自定义
    # client端
    # 客户端启动之后
    # 选择 上传操作 还是 下载操作
    # 如果是上传操作 : 输入要上传的文件路径
    # 基础需求 :直接将文件上传到默认目录
    # 进阶需求 :将文件上传到指定目录
    # 如果是下载文件 : 输入要下载的文件路径
    # 基础需求 : 直接将文件下载到当前目录
    # 进阶需求 :将文件下载到指定目录
    # 字符串
    # 文件 - 读文件 转码 写文件

    server端
    import json
    import socket

    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()

    conn,addr = sk.accept()
    content = conn.recv(1024).decode('utf-8')
    content_dic = json.loads(content)
    if content_dic['operate'] == 'upload':
    conn.send(b'received!')
    with open(content_dic['filename'],'wb') as f:
    while content_dic['filesize']:
    file = conn.recv(1024)
    f.write(file)
    content_dic['filesize'] -= len(file)
    conn.close()
    sk.close()


    client端
    import os
    import json
    import socket

    sk = socket.socket()
    sk.connect(('127.0.0.1',8080))

    def get_filename(file_path):
    filename = os.path.basename(file_path)
    return filename

    #选择 操作
    operate = ['upload','download']
    for num,opt in enumerate(operate,1):
    print(num,opt)
    num = int(input('请输入您要做的操作序号 : '))
    if num == 1:
    '''上传操作'''
    #file_path = 'E:python10day33作业.py'
    file_path = input('请输入要上传的文件路径 : ')
    # 告诉对方要上传的文件的名字
    file_name = get_filename(file_path)
    # 读要上传的文件 存成字符串
    with open(file_path,encoding='utf-8') as f:
    content = f.read()
    dic = {'operate':'upload','filename':file_name,'content':content}
    # 将字符串send给server端
    str_dic = json.dumps(dic)
    sk.send(str_dic.encode('utf-8'))
    # server端接收 bytes转码程字符串
    # server端打开文件 写文件
    elif num == 2:
    '''下载操作'''
    sk.close()

    
    
  • 相关阅读:
    JS设计模式(11)中介者模式
    PHP实现微信模板消息发送给指定用户
    PHP浮点精度问题
    PHP微信红包生成算法的程序源码(用抛物线的模型实现)
    PHP队列的实现详细操作步骤
    PHP数组函数实现栈与队列的方法介绍(代码示例)
    Laravel 事务中使用悲观锁
    array_reduce — 用回调函数迭代地将数组简化为单一的值
    PHP上传文件和下载
    php导出xls,报错:文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非你相信它的来源,否则不要打开它。
  • 原文地址:https://www.cnblogs.com/mys6/p/10799965.html
Copyright © 2011-2022 走看看