zoukankan      html  css  js  c++  java
  • Python 简单的文件上传功能

    简单地在程序当前目录下上传一张图片: 1.png 到程序的 yuan 文件夹下。这里使用的是固定参数 post,如果后期有需求,可以增加判断来更加完善程序。

    # server 端
    import socket, os
    
    sk = socket.socket()
    address=('127.0.0.1', 8000)
    sk.bind(address)
    sk.listen(3)
    print('waiting....')
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    
    while 1:
        conn, addr = sk.accept()
        while 1:
            data = conn.recv(1024)
            cmd, filename, filesize = str(data, 'utf8').split('|')
            path = os.path.join(BASE_DIR, 'yuan', filename)
    
            f = open(path, 'ab')
            has_receive = 0
            while has_receive != filesize:
                data = conn.recv(1024)
                f.write(data)
                has_receive += len(data)
    
            f.close()
    
    # client 端
    import socket, os
    sk = socket.socket()
    print(sk)
    
    address = ('127.0.0.1', 8000)
    sk.connect(address)
    
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    #print(BASE_DIR)
    
    while True:
        inp = input('>>>') # post|1.png
        cmd, path = inp.split('|')
        path = os.path.join(BASE_DIR, path)
    
        filename = os.path.basename(path)
        file_size = os.stat(path).st_size
        file_info = 'post|%s|%s'%(filename, file_size)
    
        sk.sendall(bytes(file_info, 'utf8'))
    
        f = open(path, 'rb')
        has_sent = 0
        while has_sent != file_size:
            data = f.read(1024)
            sk.sendall(data)
            has_sent += len(data)
        f.close()
        print('上传成功')
    
    运行结果:
    <socket.socket fd=296, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
    >>>post|1.png
    上传成功
    
  • 相关阅读:
    Java集合之ArrayList
    深入理解Java中的String
    Spring系列之AOP实现的两种方式
    设计模式之代理模式
    使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件
    滚动页面, 顶部导航栏固定效果
    nginx同一iP多域名配置方法
    nginx 服务器重启命令,关闭
    CentOS Linux服务器安全设置
    CentOS7安装iptables防火墙
  • 原文地址:https://www.cnblogs.com/klvchen/p/9251688.html
Copyright © 2011-2022 走看看