码迷,mamicode.com
首页 > Web开发 > 详细

034文件上传

时间:2018-03-04 13:08:52      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:close   sed   简单的   文件名   none   size   post   col   pos   

因为这个是简单的,所以很容易
思想就是建立连接后,客户端发送文件名字和大小到服务端,服务端接受后,客户端开始发送文件,直到发完。具体的还是要看下面的代码,我自己实现了一遍

技术分享图片
 1 import  socket
 2 import  os
 3 
 4 def get_server_socket():
 5     sk = socket.socket()
 6     address = (127.0.0.1,8888)
 7     sk.bind(address)
 8     sk.listen(3)
 9     return sk
10 
11 def  wait_connect(sk):
12     print(waitconnecting...)
13     conn, addr = sk.accept()
14     return conn
15 
16 if  __name__ == __main__:
17     sk = get_server_socket()
18     conn = wait_connect(sk)
19     BASIC_DIR = os.path.dirname(os.path.abspath(__file__))
20     while True:
21         data = str(conn.recv(1024),utf8)
22         cmd,filename,file_size = data.split(|)
23         path = os.path.join(BASIC_DIR,yuan,filename)
24         file_size = int(file_size)
25     f = open(path,wb)
26     has_receive = 0
27     while has_receive != file_size:
28         data = conn.recv(1024)
29         f.write(data)
30         has_receive += len(data)
31     f.close()
post_server.py
技术分享图片
 1 import  socket
 2 import  os
 3 
 4 def  get_client_socket():
 5     sk = socket.socket()
 6     address = (127.0.0.1,8888)
 7     sk.connect(address)
 8     return sk
 9 
10 if __name__ == __main__:
11     BASIC_DIR = os.path.dirname(os.path.abspath(__file__))
12     sk = get_client_socket()
13     while  True:
14         inp = input(>>>).strip()#post|11.png
15         cmd,path = inp.split(|)
16         path = os.path.join(BASIC_DIR,path)#使用系统的路径拼接
17         filename = os.path.basename(path)#拿到文件名字
18         file_size = os.stat(filename).st_size#拿到文件的大小
19         file_info = post|%s|%s%(filename,file_size)
20         sk.sendall(bytes(file_info,utf8))
21     f = open(path,rb)
22     has_sent = 0
23     while has_sent != file_size:
24         data = f.read(1024)
25         sk.sendall(data)
26         has_sent += len(data)
27     f.close()
28     print(上传完成)
post_client.py

 

034文件上传

标签:close   sed   简单的   文件名   none   size   post   col   pos   

原文地址:https://www.cnblogs.com/-nbloser/p/8504286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!