Python 文件上传案例

 

'''

import requests

res = requests.get(
"https://vd2.bdstatic.com/mda-nae3n9ssk12en6we/sc/cae_h232_delogo/1642214352000767797/mda-nae3n9ssk12en6c7.mp4?v_from_s=hkapp-haokan-hbe&auth_key=1645862871-0-0-bc029a5e7ae5746e98a9d0ed826461e6&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=2271091750&vid=5617093822891991609&abtest=100815_2-17451_1&klogid=2271091750")

with open("图片.jpg", "wb") as f:
f.write(res.content)
'''


'''
import socket
import json

# (1) 构建套接字对象,确定通信协议
sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
# (2) 绑定IP和端口
ip_port = ("127.0.0.1", 6784)
sock.bind(ip_port)
# (3) 监听最大排队数
sock.listen(2)
# (4) 阻塞等待客户端连接
while 1:
print("server is waiting...")
conn, addr = sock.accept()
# print("conn", conn)
# print("addr", addr)
while 1:
# (2)接受来自客户端的文件信息
data_json = conn.recv(1024) # recv是一个阻塞函数
data = json.loads(data_json.decode())
print("data:", data)
file_size = data["params"]["file_size"]
file_name = data["params"]["file_name"]

# (3)将接收到的文件数据一行行写入到新文件中
receive_data_len = 0
with open("" + file_name,"wb") as f:

while receive_data_len < file_size:
temp = conn.recv(1024)
f.write(temp)
receive_data_len += len(temp)

print("文件上传成功") 
'''

'''
import socket
import os
import json

# (1) 构建套接字对象,确定通信协议
sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
ip_port = ("127.0.0.1", 6784)
sock.connect(ip_port)

while 1:
# 客户端给服务端发送消息
params = input("请输入命令(比如上传文件put 文件路径):")
cmd, local_path = params.split(" ")
# (1) 将文件信息传给服务端
file_size = os.path.getsize(local_path)
file_name = os.path.basename(local_path)
file_params = {"file_name": file_name, "file_size": file_size}
data = {"cmd": cmd, "params": file_params}
print("data", data)
sock.send(json.dumps(data).encode())

# (2) 循环读取文件,传给server端
with open(local_path, "rb") as f:
for line in f:
sock.send(line)

print("文件发送完毕")
'''
posted @ 2022-05-11 20:26  呼长喜  阅读(174)  评论(0编辑  收藏  举报