python-上传下载文件

https://www.cnblogs.com/jessicaxu/p/7891372.html

 

python-上传下载文件

一、服务端接口

import flask, os,sys,time
from flask import request, send_from_directoryinterface_path = os.path.dirname(__file__)
sys.path.insert(0, interface_path)  #将当前文件的父目录加入临时系统变量server = flask.Flask(__name__)#get方法:指定目录下载文件
@server.route('/download', methods=['get'])
def download():fpath = request.values.get('path', '') #获取文件路径fname = request.values.get('filename', '')  #获取文件名if fname.strip() and fpath.strip():print(fname, fpath)if os.path.isfile(os.path.join(fpath,fname)) and os.path.isdir(fpath):return send_from_directory(fpath, fname, as_attachment=True) #返回要下载的文件内容给客户端else:return '{"msg":"参数不正确"}'else:return '{"msg":"请输入参数"}'# get方法:查询当前路径下的所有文件
@server.route('/getfiles', methods=['get'])
def getfiles():fpath = request.values.get('fpath', '') #获取用户输入的目录print(fpath)if os.path.isdir(fpath):filelist = os.listdir(fpath)files = [file for file in filelist if os.path.isfile(os.path.join(fpath, file))]return '{"files":"%s"}' % files# post方法:上传文件的
@server.route('/upload', methods=['post'])
def upload():fname = request.files.get('file')  #获取上传的文件if fname:t = time.strftime('%Y%m%d%H%M%S')new_fname = r'upload/' + t + fname.filenamefname.save(new_fname)  #保存文件到指定路径return '{"code": "ok"}'else:return '{"msg": "请上传文件!"}'server.run(port=8000, debug=True)

 

 二、客户端发送请求

import requests
import os#上传文件到服务器
file = {'file': open('hello.txt','rb')}
r = requests.post('http://127.0.0.1:8000/upload', files=file)
print(r.text)#查询fpath下的所有文件
r1 = requests.get('http://127.0.0.1:8000/getfiles',data={'fpath': r'download/'})
print(r1.text)#下载服务器download目录下的指定文件
r2 = requests.get('http://127.0.0.1:8000/download',data={'filename':'hello_upload.txt', 'path': r'upload/'})
file = r2.text #获取文件内容
basepath = os.path.join(os.path.dirname(__file__), r'download/')
with open(os.path.join(basepath, 'hello_download.txt'),'w',encoding='utf-8') as f: #保存文件f.write(file)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Quartz.net 2.0的使用说明

Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于WinForm和ASP.NET应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而 创建简单的或复杂的调度。它有很多特征&#x…

Android View滚动、拉伸到顶/底部弹性回弹复位

《Android View滚动、拉伸到顶/底部弹性回弹复位》 我在上一篇文章介绍了如何实现一个Android ListView拉到顶/底部后,像橡皮筋一样弹性回弹复位(《Android ListView拉到顶/底部,像橡皮筋一样弹性回弹复位》&#xf…

JavaScript If...Else 语句

条件语句用于基于不同的条件来执行不同的动作。 条件语句 通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完成该任务。 在 JavaScript 中,我们可使用以下条件语句: if 语句 - 只有当指定条件为 true …

使用手机游戏的新闻推送

使用手机游戏的新闻推送——WeCloud 团队 消息推送是游戏开发人员与玩家沟通最直接的桥梁。开发人员能够通过推送一条消息直观地在手机屏幕上把信息传达给玩家。可是因为开发人员一些不恰当推送或者对于推送细节的疏忽大意,使得大多数的玩家都选择了彻底关闭推送消息…

Python -- post方式上传文件

说明 使用第三方库Request,安装方法为: pip install requests 具体安装方法参考http://docs.python-requests.org/en/master/user/install/。 代码 import requestsurl http://127.0.0.1/upload files {file: open(D:/test.apk, rb)} da…

WeakReference与SoftReference

WeakReference与SoftReference都可以用来保存对象的实例引用,这两个类与垃圾回收有关。 WeakReference是弱引用,其中保存的对象实例可以被GC回收掉。这个类通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通常用于Debug、内…

TCP是如何保证包的顺序传输

转自:http://blog.csdn.net/ggxxkkll/article/details/7894112 大家都知道,TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作&#…

Python文件上传功能简单实现

本文章代码上传在码云上 代码地址 gitgitee.com:DanYuJie/upanddown.git这里我们使用flask框架,简单实用 目录结构: upandown/static/css/js/jquery.min.jstoastr.min.jstemplates/index.htmltest.py 首先我们需要一个页面在templates/index.html(…

Arduino 端口通信实例

// //Arduino 1.0.x-----Arduino Uno----COM9 //使用3-10号引脚连接8个LED // int incomingByte 0; //输入的数据存储变量 int count1; void setup() {Serial.begin(9600);// opens serial port, sets data rate to 9600 bpsfor(int i3;i<10;i)//打开3-10号引脚pinMode(i…

redhat6.4 安装oracle 10g error

环境&#xff1a;操作系统:redhat6.4 64位数据库版本:10.2.0.4 64位搭建测试原因&#xff1a;http://718693.blog.51cto.com/708693/1682945说明&#xff1a;在redhat6.4上安装10.2.0.1 64位接着再升级到10.2.0.4 64位&#xff0c;在执行DBCA报如下错误UnsatisfiedLinkError ex…

sha256---利用java自带的实现加密

利用java自带的实现加密&#xff1a;参考https://jingyan.baidu.com/article/2fb0ba40a2ef2b00f3ec5f74.html /*** 利用java原生的摘要实现SHA256加密* param str 加密后的报文* return*/public static String getSHA256StrJava(String str){MessageDigest messageDigest;Stri…

Flask文件上传

https://zhuanlan.zhihu.com/p/23731819 Flask文件上传&#xff08;一&#xff09;&#xff1a;原生实现 李辉 greyli.com 87 人赞同了该文章 文件上传是个躲不掉的问题&#xff0c;用户头像&#xff0c;文章图片&#xff0c;文件分享等等都需要上传功能。但这里涉及很多内…

Python匿名函数——lambda表达式

如果要定义的函数很简单&#xff0c;一个return语句就能搞定&#xff0c;可以使用lambda表达式来定义&#xff0c; lambda表达式的语法如下&#xff1a; lambda parameters: expressionlambda表达式并不包含return语句&#xff0c;凡是使用函数作为参数或返回值的地方&#xff…

jQuery实现radio第一次点击选中第二次点击取消功能(转)

转载自&#xff1a;http://www.jb51.net/article/113730.htm 由于项目的需求&#xff0c;要求radio点击两次后为取消状态&#xff0c;不方便修改为checkbox&#xff0c;可以用正面的方法实现。 // jquery$(input:radio).click(function(){//alert(this.checked);//var $radio …

简单编码

将一串文本译成密码&#xff0c;密码的规律是&#xff1a; 将原来的小写字母全部翻译成大写字母&#xff0c;大写字母全部翻译成小写字母&#xff0c;数字的翻译规律如下&#xff1a; 0——>9 1——>8 2——>7 3——>6 4——>5 5——>4 6——>3 7——>…

QCon上海2015热点前瞻:Uber伸缩之道、注重实效的性能

QCon上海2015将于10月15日~17日举行。8月16日前报名&#xff0c;可享受8折优惠。\\本次大会设计了15个热点技术专题&#xff0c;涵盖大数据、架构、移动开发、产品设计、安全、团队建设、技术创业等热点话题。我们将邀请业界知名专家&#xff0c;分享他们的实践经验。目前已经确…

工具配置链接

一、idea运行eclipse和myeclipse项目 二、idea中git的使用 三、idea快捷键 转载于:https://www.cnblogs.com/javabeginer/p/7515071.html

C 文件读写 容易疏忽的一个问题

今天需要解决一个问题&#xff0c;将影像瓦片&#xff08;一堆jpg文件&#xff09;分别进行读取&#xff0c;并将所有数据以文件流的方式存入一个.db的文件中&#xff0c; 同时将每个jpg数据在db文件中的位置保存下来&#xff0c;作为index存在.idx文件中。 其中部分代码如下&a…

LNMP里常见的502问题

讲关于nginx的高级配置&#xff0c;在Apache讲了很多关于“用户认证”、“日志”、“重定向”等等操作&#xff0c;当然nginx也会有相同的操作。首先&#xff0c;我们把Discuz在Nginx下实现访问&#xff0c;用之前的域名www.test.com进入目录[rootLampLinux vhosts]# cd /usr/l…

python学习过程中随手写的测试脚本-testloop.py

## 定义list数组lstrs [t1,t2,t3,t4]print(lstrs is,lstrs) i 0## test for loopfor lstr in lstrs: print(lstrs[%d] is % i,lstr ) i i 1print(end for loop) j 0## test while loopwhile j < 3: print(lstrs[%d] is % j,lstrs[j] ) j j 1print(end while loop) k …