Python 简单的文件上传功能
简单地在程序当前目录下上传一张图片: 1.png 到程序的 yuan 文件夹下。这里使用的是固定参数 post,如果后期有需求,可以增加判断来更加完善程序。
# server 端
import socket, os
sk = socket.socket()
address=('127.0.0.1', 8000)
sk.bind(address)
sk.listen(3)
print('waiting....')
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
while 1:
conn, addr = sk.accept()
while 1:
data = conn.recv(1024)
cmd, filename, filesize = str(data, 'utf8').split('|')
path = os.path.join(BASE_DIR, 'yuan', filename)
f = open(path, 'ab')
has_receive = 0
while has_receive != filesize:
data = conn.recv(1024)
f.write(data)
has_receive += len(data)
f.close()
# client 端
import socket, os
sk = socket.socket()
print(sk)
address = ('127.0.0.1', 8000)
sk.connect(address)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
#print(BASE_DIR)
while True:
inp = input('>>>') # post|1.png
cmd, path = inp.split('|')
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')
has_sent = 0
while has_sent != file_size:
data = f.read(1024)
sk.sendall(data)
has_sent += len(data)
f.close()
print('上传成功')
运行结果:
<socket.socket fd=296, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
>>>post|1.png
上传成功
Python 简单的文件上传功能的更多相关文章
- nodejs 实现简单的文件上传功能
首先需要大家看一下目录结构,然后开始一点开始我们的小demo. 文件上传总计分为三种方式: 1.通过flash,activeX等第三方插件实现文件上传功能. 2.通过html的form标签实现文件上传 ...
- java 网络编程之TCP通信和简单的文件上传功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 如何用php实现简单的文件上传功能?(带图解)
如图所示:点击浏览出现选择文件的对话框,将所选文件上传到保存文件的文件. 关键点:文件上传的图解: 代码: <!DOCTYPE html> <html> <head&g ...
- spring mvc 3.0 实现文件上传功能
http://club.jledu.gov.cn/?uid-5282-action-viewspace-itemid-188672 —————————————————————————————————— ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- MVC5:使用Ajax和HTML5实现文件上传功能
引言 在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能. 基本功能:实现带有进度条的文件上传功 ...
- 使用jsp/servlet简单实现文件上传与下载
使用JSP/Servlet简单实现文件上传与下载 通过学习黑马jsp教学视频,我学会了使用jsp与servlet简单地实现web的文件的上传与下载,首先感谢黑马.好了,下面来简单了解如何通过使用 ...
- Spring 文件上传功能
本篇文章,我们要来做一个Spring的文件上传功能: 1. 创建一个Maven的web工程,然后配置pom.xml文件,增加依赖: <dependency> <groupId> ...
- Django 实现简单的文件上传
今天分享一下Django实现的简单的文件上传的小例子. 步骤 创建Django项目,创建Django应用 设计模型 处理urls.py 以及views.py 设计模板,设计表单 运行项目,查看数据库 ...
随机推荐
- Alpha阶段项目复审(冲鸭队)
Alpha阶段项目复审(冲鸭队) 组名 优点 缺点 排名 天冷记得穿秋裤队 支持文件离线开源下载,没有限速 部分功能未实现 1 中午吃啥队 点餐系统用户需求较高,系统功能完善 界面可以再完善一下些 2 ...
- iOS开发笔记(Swift)-针对Swift调用PPiFlatSegmentedControl项目的一些修改
PPiFlatSegmentedControl项目是一个很流行的开源iOS控件库,提供了扁平化风格(Flat style)的SegmentedControl,可以自定义segment的颜色,图标.大小 ...
- docker 中ulimit设置理解
背景: 在k8s上跑es集群碰到的问题 OS版本 红旗4.5(基于centos6.8 内核) Docker:1.17.02 现象: 本次出现的问题现象:es pod启动失败,一直报max file d ...
- odoo开发笔记 -- 搜索视图继承扩展
odoo开发笔记 -- 搜索视图继承扩展
- jquery的contains方法
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- Tsql2008查询性能优化第一章---APPLY
APPLY运算符涉及以下两个步骤中的一步或两步(取决于APPLY的类型): 1.A1把右表表达式应用于左表的行. 2.A2:添加外部行. Ap ...
- Android 源码分析01_AsyncTask
[参考文献] http://blog.csdn.net/singwhatiwanna/article/details/17596225 /* * Copyright (C) 2008 The Andr ...
- interface21 - web - Log4jConfigListener(Log4j加载流程)
前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...
- SQL 必知必会·笔记<20>高级SQL特性
1. 约束 约束(constraint)就是管理如何插入或处理数据库数据的规则.DBMS通过在数据库表上施加约束来实施引用完整性. 1.1 主键 主键是一种特殊的约束,用来保证一列(或一组列)中的值是 ...
- Docker 本地导入镜像/保存镜像/载入镜像/删除镜像
1.Docker导入本地镜像 有时候我们自己在本地或者其它小伙伴电脑上拷贝了一份镜像,有了这个镜像之后,我们可以把本地的镜像导入,使用docker import 命令. 例如这里下载了一个 aliba ...