Flask-RESTful - Upload image

后端 未结 5 1949
再見小時候
再見小時候 2020-12-08 01:03

I was wondering on how do you upload files by creating an API service?

class UploadImage(Resource):
    def post(self, fname):
        file = request.files[\         


        
5条回答
  •  萌比男神i
    2020-12-08 01:31

    from flask import Flask, url_for, send_from_directory, request
    import logging, os
    from werkzeug import secure_filename
    
    app = Flask(__name__)
    file_handler = logging.FileHandler('server.log')
    app.logger.addHandler(file_handler)
    app.logger.setLevel(logging.INFO)
    
    PROJECT_HOME = os.path.dirname(os.path.realpath(__file__))
    UPLOAD_FOLDER = '{}/uploads/'.format(PROJECT_HOME)
    app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
    
    
    def create_new_folder(local_dir):
        newpath = local_dir
        if not os.path.exists(newpath):
            os.makedirs(newpath)
        return newpath
    
    @app.route('/', methods = ['POST'])
    def api_root():
        app.logger.info(PROJECT_HOME)
        if request.method == 'POST' and request.files['image']:
            app.logger.info(app.config['UPLOAD_FOLDER'])
            img = request.files['image']
            img_name = secure_filename(img.filename)
            create_new_folder(app.config['UPLOAD_FOLDER'])
            saved_path = os.path.join(app.config['UPLOAD_FOLDER'], img_name)
            app.logger.info("saving {}".format(saved_path))
            img.save(saved_path)
            return send_from_directory(app.config['UPLOAD_FOLDER'],img_name, as_attachment=True)
        else:
            return "Where is the image?"
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', debug=False)
    

    Here is a link

提交回复
热议问题