Python(文件上传)
day26
通过socket上传文件。
post_client.py
import socket
import os
sk = socket.socket()
print(sk)
address = ('127.0.0.1', 8003)
sk.connect(address) BASE_DIR = os.path.dirname(os.path.abspath(__file__))#当前执行文件路径 while True:
inp = input('>>>').strip()#post abc.png
cmd, path = inp.split('|') #post, 需传送的文件即abc.png
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')#字节b为bytes
has_sent = 0
while has_sent != file_size:#相同大小说明全部上传
data = f.read(1024)#取一部分发
sk.sendall(data)
has_sent += len(data) f.close()
print('上传成功') sk.close()
#print(sk)
post_server.py
import socket
import subprocess
sk = socket.socket()#创建socket
import os
print(sk) address = ('127.0.0.1', 8003)#本机地址
sk.bind(address)#为socket绑定IP和端口号 sk.listen(3)#限制排队的个数
print('waiting......')
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) while True:
conn, addr = sk.accept() while True:
data = conn.recv(1024)
cmd, filename, filesize = str(data, 'utf8').split('|')#获得信息
path = os.path.join(BASE_DIR, 'far', filename)#新路径
filesize = int(filesize) f = open(path, 'ab')
has_receive = 0
#接收
while has_receive != filesize:
data = conn.recv(1024)
f.write(data)
has_receive += len(data) f.close()#不能忘记关闭,否则出错
print('接收完毕!')
sk.close()#全关
执行post_server.py,再执行post_client.py,在client中输入post|abc.png进行上传。
(其中abc.png和两个执行文件同级,在以上三个文件相同位置还存在一个far包)

Python(文件上传)的更多相关文章
- python 文件上传本地服务器
1:python之上传文件 1.1.url代码 """untitled1222 URL Configuration The `urlpatterns` list rout ...
- python文件上传工具实现
0x00 之前验收waf模块webshell效果,组网pc--waf--webserver,收集网络上的webshell样本,进行上传测试.由于数量较多8000+个样本, 只好写了个工具进行验收. w ...
- python文件上传
1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- python文件上传的三种方式
def upload(request): return render(request, 'upload.html') def upload_file(request): username = requ ...
- python运维开发(二十一)----文件上传和验证码+session
内容目录: 文件上传 验证码+session 文件和图片的上传功能 HTML Form表单提交,实例展示 views 代码 HTML ajax提交 原生ajax提交,XMLHttpRequest方式上 ...
- selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传
AutoIt使用简单说明 AutoIt的安装这里就不在啰嗦,可以参考AutoIt安装或者自行搜索解决. 第一步:定位上传文件路径的文本框 这里举例说明,如何定位?如图 这里我们看到上传文件的类型是bu ...
- python+selenium+autoit实现文件上传
问题 在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下 解决方案 第一种:type=file的上传文件,类似如下的 使用类似这样的代码就可以完成: driver.fin ...
- 基于hi-nginx的web开发(python篇)——表单处理和文件上传
hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
随机推荐
- Web前端工程师常去的15个技术网站
1.CSDN 网址:https://www.csdn.net/ 简介: CSDN (Chinese Software Developer Network) 创立于1999年,是中国最大的IT社区和服务 ...
- jquery获取radio单选框的值
1.获取原有单选框的值 var value=$("input[name='is_setting']:checked").val(); 2.获取重选后的单选框的值 <tr> ...
- pandas replace函数使用小结
http://blog.csdn.net/kancy110/article/details/72719340
- JavaScript 代码小片段
1.获取对象 obj 的所有属性(自有属性和继承属性),保存到数组 lst 中 //获取对象obj的所有属性(自有属性和继承属性),保存到数组lst 中 var lst = []; function ...
- 2018.07.22 洛谷P3106 GPS的决斗Dueling GPS's(最短路)
传送门 图论模拟题. 这题直接写3个(可以压成一个)spfa" role="presentation" style="position: relative;&q ...
- C++之类和对象的使用(三)
对象数组 如果构造函数只有一个参数,在定义数组时可以直接在等号后面的花括号内提供.Student stud[3]={90,92,01};//合法 如果构造函数有多个参数,则不能用在定义时直接所提供所有 ...
- MySQL之SQL语句零碎总结
一.MySQL中有个ifnull函数,跟Oracle的nvl类似,用法如下: select* from Ta t where ifnull(pro, 0) < 100; 解释:当pro是null ...
- 功能强大的文件上传插件带上传进度-WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...
- 简单的cxf-ws 基于web容器
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- WPF MediaKit的一点问题
原版WPF MediaKit在捕获摄像头视频时,如果不使用640*480分分辨率输出,会出现NewVideoSample事件不被触发的问题. 经数日摸索,终于明白SetVideoCapturePara ...