博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python-上传下载文件
阅读量:5096 次
发布时间:2019-06-13

本文共 2059 字,大约阅读时间需要 6 分钟。

一、服务端接口

import flask, os,sys,timefrom 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.filename        fname.save(new_fname)  #保存文件到指定路径        return '{"code": "ok"}'    else:        return '{"msg": "请上传文件!"}'server.run(port=8000, debug=True)

 

二、客户端发送请求

import requestsimport 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)

 

转载于:https://www.cnblogs.com/jessicaxu/p/7891372.html

你可能感兴趣的文章
[BJOI2019省内集训]完美塔防 题解
查看>>
通过top命令发现plymouthd进程cpu负载达到近100% 解决办法
查看>>
oracle 锁表、解锁的语句
查看>>
lua转让C++书面DLL达到“热更新”
查看>>
oppo9.0系统机器最完美激活xposed框架的方法
查看>>
SCOPE_IDENTITY和@@IDENTITY[转]
查看>>
关于GSMS的制作方法的记录
查看>>
机器学习之特征工程
查看>>
Asp.Net的Cookie用法以及注意事项
查看>>
jquery 图片懒加载
查看>>
android应用安全——(数据抓包)跟踪监控android数据包
查看>>
MapWindow Gis 组件代码示例:
查看>>
JavaScript实现轮播图
查看>>
实验二
查看>>
用C语言画一个心
查看>>
Jlabel实现内容自动换行
查看>>
001——Spring、Hibernate整合
查看>>
ASP.NET MVC 4 Attribute特性
查看>>
hbase学习(一)hbase简介
查看>>
Object C学习笔记8-字符串NSString之二
查看>>