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(文件上传)的更多相关文章

  1. python 文件上传本地服务器

    1:python之上传文件 1.1.url代码 """untitled1222 URL Configuration The `urlpatterns` list rout ...

  2. python文件上传工具实现

    0x00 之前验收waf模块webshell效果,组网pc--waf--webserver,收集网络上的webshell样本,进行上传测试.由于数量较多8000+个样本, 只好写了个工具进行验收. w ...

  3. python文件上传

    1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  4. python文件上传的三种方式

    def upload(request): return render(request, 'upload.html') def upload_file(request): username = requ ...

  5. python运维开发(二十一)----文件上传和验证码+session

    内容目录: 文件上传 验证码+session 文件和图片的上传功能 HTML Form表单提交,实例展示 views 代码 HTML ajax提交 原生ajax提交,XMLHttpRequest方式上 ...

  6. selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传

    AutoIt使用简单说明 AutoIt的安装这里就不在啰嗦,可以参考AutoIt安装或者自行搜索解决. 第一步:定位上传文件路径的文本框 这里举例说明,如何定位?如图 这里我们看到上传文件的类型是bu ...

  7. python+selenium+autoit实现文件上传

    问题 在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下 解决方案 第一种:type=file的上传文件,类似如下的 使用类似这样的代码就可以完成: driver.fin ...

  8. 基于hi-nginx的web开发(python篇)——表单处理和文件上传

    hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...

  9. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

随机推荐

  1. AE教程:学会这个,你做的Logo就可以单独出道了

    一.确定所需要做的动效 1.制作logo背景形状动效 2.制作U的动效 3.制作I的动效 4.制作消失动效 二.制作logo背景形状动效1.”合成 - 新建合成“ 新建一个1000*800的合成 2. ...

  2. dedecms操作数据库

    重要的事情说三遍:代码复制完要格式化,格式化,格式化,最好重新抄一遍,小心陷阱 一.配置数据库配置文件路径/data/common.inc.php二.连接数据库dirname(__FILE__)表示当 ...

  3. JDK和Eclipse的下载路径

    JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse http://www.eclipse.or ...

  4. 创建 maven web 项目时 ,更改 为 Dynamic web module 为 3.0 时 项目报错

    更改 项目 project facets 将 dynamic web module  改为 3.0 ,如果 java 的 版本 为 1.7 以下 ,项目会出现 叉 , 原因是  web 3.0  要和 ...

  5. 【Web】Nginx下载与安装

    Nginx介绍 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗 ...

  6. android触控,先了解MotionEvent(一)

    http://my.oschina.net/banxi/blog/56421 这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要 ...

  7. 2018.09.26 bzoj1015: [JSOI2008]星球大战starwar(并查集)

    传送门 并查集经典题目. 传统题都是把删边变成倒着加边,这道题是需要倒着加点. 处理方法是将每个点与其他点的边用一个vector存起来,加点时用并查集统计答案就行了. 代码: #include< ...

  8. Spring中property-placeholder的使用与解析

    Spring中property-placeholder的使用与解析 我们在基于spring开发应用的时候,一般都会将数据库的配置放置在properties文件中. 代码分析的时候,涉及的知识点概要: ...

  9. linux上安装jdk1.8

    开发环境centos7, jdk1.8 首先去官网下载jdk1.8的linux64位安装包 进入目录/usr/local/mypackage/java 利用winscp上传jdk安装包 命令tar - ...

  10. 201709011工作日记--ART与Dalvik&&静态类与非静态类

    1.ART 与 Dalvik 的优缺点对比 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机.dex格式是专为Dalvik应用设计的一种压缩格.Dalv ...