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("文件发送完毕")
'''
分类:
Python知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?