zoukankan      html  css  js  c++  java
  • 上传文件

    服务器端
     1 import socket
     2 import time
     3 import os
     4 sk=socket.socket()
     5 address=("127.0.0.1",8000)
     6 sk.bind(address)
     7 sk.listen(3)
     8 print("等待链接")
     9 conn,raddr=sk.accept()
    10 收到的信息=conn.recv(1024)
    11 print(收到的信息)
    12 post,文件名,文件大小=str(收到的信息,"utf8").split("|")
    13 print(文件大小)
    14 文件大小=int(文件大小)
    15 基础地址=os.path.dirname(os.path.abspath(__file__))
    16 保存地址=os.path.join(基础地址,"上传",文件名)
    17 创建文件=open(保存地址,"ab")
    18 累计收到=0
    19 
    20 while 累计收到!=文件大小:
    21 
    22     收到的信息2=conn.recv(1024)
    23     创建文件.write(收到的信息2)
    24     print(len(收到的信息2))
    25     累计收到+=len(收到的信息2)
    26 
    27 print(累计收到)
    28 print(文件大小)
    29 
    30 创建文件.close()

    客户端

     1 import socket
     2 import os
     3 sk=socket.socket()
     4 address=("127.0.0.1",8000)
     5 sk.connect(address)
     6 绝对路径文件夹=os.path.dirname(os.path.abspath(__file__))
     7 
     8 # 文件名=os.path.basename(绝对路径文件夹)
     9 输入上传名=input(">>>>>>")#post|微信.png
    10 命令,文件名=输入上传名.split("|")
    11 绝对路径=os.path.join(绝对路径文件夹,文件名)
    12 文件名=os.path.basename(绝对路径)
    13 文件大小=os.stat(绝对路径).st_size
    14 print(文件大小)
    15 打包信息="post|%s|%s"%(文件名,文件大小)
    16 sk.send(bytes(打包信息,"utf8"))
    17 打开文件=open(绝对路径,"rb")
    18 
    19 
    20 
    21 累计发送=0
    22 while 累计发送!=文件大小:
    23     读取文件 = 打开文件.read(1024)
    24     sk.sendall(读取文件)
    25     print("发送一次")
    26     累计发送+=len(读取文件)
    27 
    28 打开文件.close()
  • 相关阅读:
    Matlab n阶矩阵行、列互换
    IfcGeographicElement
    集合系列 Set(七):LinkedHashSet
    集合系列 Set(六):HashSet
    集合系列 List(五):Stack
    集合系列 List(四):LinkedList
    集合系列 List(三):Vector
    集合系列 List(二):ArrayList
    集合系列(一):集合框架概述
    集合系列开篇:为什么要学集合?
  • 原文地址:https://www.cnblogs.com/wangbin2020/p/13160966.html
Copyright © 2011-2022 走看看