• 用30行代码开发一个上传、下载文件的接口


    分享一段代码,开发了3个接口:
                1、上传文件
                2、查看所有文件
                3、下载文件

    使用python开发,需要安装flask模块,使用pip install flask安装即可,代码量特别少,就能实现,加上注释总共35行代码,特别的简单,代码如下:

    import flask,os,time
    from flask import request,send_from_directory,jsonify
    app = flask.Flask(__name__)#创建一个app,代表这个web服务
    @app.route('/get_file',methods=['get'])
    def get_file():
        #下载文件接口
        filename = request.values.get('fname',None)
        #获取需要下载的文件名
        if filename:#如果获取到的文件名话
            if os.path.isfile(filename):#判断是否是一个文件
                #返回要下载的文件
                return send_from_directory('.',filename,as_attachment=True)
            else:
                return jsonify({"msg":"文件不存在!"})
        else:
            return jsonify({'msg':'文件名不能为空'})
    @app.route('/files',methods=['get'])
    def file_list():
        #获取文件列表接口
        files = os.listdir('.')#获取当前目录下所有文件
        new_files = [f for f in files if os.path.isfile(f)]
        #三元运算符,把是文件的放到list中
        return jsonify({"files":new_files})
    @app.route('/upload',methods=['post'])
    def upload():
        #上传文件接口
        f = request.files.get('file_name',None)
        if f:
            t = time.strftime('%Y%m%d%H%M%S')#获取当前时间
            new_file_name = t+f.filename#给文件重命名,防止有重复文件覆盖
            f.save(new_file_name)#保存文件
            return jsonify({"code":"ok"})
        else:
            return jsonify({"msg":"请上传文件!"})
    app.run(debug=True,port=8888)#启动这个web服务

     

  • 相关阅读:
    BUUCTF--[GUET-CTF2019]number_game
    36D杯CTF Re WP
    BUUCTF--[GWCTF 2019]re3
    虎符网络安全赛道 Re Game
    Python ZIP压缩文件破解
    合唱队, 华为
    字符串排序, 华为
    称砝码, 华为
    迷宫问题, 华为
    Sudoku , 华为
  • 原文地址:https://www.cnblogs.com/feng0815/p/7856567.html
Copyright © 2020-2023  润新知