使用Flask上传和下载图像文件

时间:2016-12-22 11:52:49

标签: python-3.x flask

我想上传和下载图像文件并使用Flask将png转换为jpg。 所以我使用PIL。我不知道上传和下载并将png转换为jpg。

这是代码

from flask import Flask, make_response, request
from PIL import Image

app = Flask(__name__)

def transform(pngtojpg):
    pngtojpg.save('c:/photo/result_image.jpg')
    return pngtojpg


@app.route('/')
def form():
    return """
        <html>
            <body>
                <h1>Transform a png to jpg</h1>

                <form action="/convert" method="post" enctype="multipart/form-data">
                    <input type="file" name="img_file" />
                    <input type="submit" />
                </form>
            </body>
        </html>
    """

@app.route('/convert', methods=["POST"])
def convert_view():
    file = request.files['img_file']
    if not file:
        return "No file"

    png = Image.open(file)

    result = transform(png)

    response = make_response(result)
    response.headers["Content-Disposition"] = "attachment; filename=result_image.jpg"
    return response


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

1 个答案:

答案 0 :(得分:1)

要处理上传,请查看Flask文档Uploading Files。我也建议使用Flask-Uploads Plugin来处理上传。下载非常简单,因为您只需要提供指向图像文件的链接。

将图片从jpg转换为png Pillow是一个不错的选择。它是PIL的继承者。