FLASK : POST request with image and string

Viewed 208

I'd like to send a post request to the server containing an image, and a string to be used in a ML model, then return a new image from the server to be used in my app. now , I'm getting a bad request!

@app.route('/', methods=['POST'])
def API():
    if request.method == 'POST':
        imgfile = request.files['image'] # First field to be sent (Image)
        imagename = werkzeug.utils.secure_filename[imgfile.filename]
        imgfile.save('/home/criuser/images/' + imagename)
        background_name = request.fields['back']  # Second field to be sent (String)
        original = '/home/criuser/images/' + imagename
        background = '/home/criuser/' + background_name
        change_bg = alter_bg(model_type="pb")
        change_bg.load_pascalvoc_model("/home/criuser/Téléchargements/xception_pascalvoc.pb")
        result = change_bg.change_bg_img(f_image_path=original,
                                         b_image_path=background,
                                         output_image_name="/home/criuser/Téléchargements/new.jpg")
        return send_file("/home/criuser/Téléchargements/new.jpg", as_attachment=True)


if __name__ == '__main__':
    app.run()

that's what I use for the POST request :

curl -v -X POST --data-urlencode -d '{"image":"/home/criuser/Téléchargements/20210728_122019.jpg","back":"/home/criuser/Téléchargements/Tableau_Dashboard.jpg"}' http://127.0.0.1:5000
0 Answers
Related