2017-10-07 15 views
1

J'ai quatre images que je veux les télécharger, mais leurs tailles sont très grandes, il faut beaucoup de temps pour les télécharger sur le site.Comment redimensionner des images avant de les télécharger dans Flask?

Je veux redimensionner chacun d'eux, je l'ai écrit une petite route qui gère la demande:

@team_route.route('/team/dashboard/add/product', methods=['GET', 'POST']) 
@requires_auth 
@master_login_required(role='master') 
def team_add_product(): 
    form = AddProduct() 
    imagesList = [] 
    size = 1024, 764 
    if request.method == 'POST' and form.is_submitted(): 
     product = Goods() 
     file = request.files.getlist("image[]") 
     if file: 
      for zipfile in file: 
       fi = Image.open(BytesIO(zipfile.stream.read())) 
       im.thumbnail(size) 
       img2 = im.rotate(-90, expand=True) 
       img2.seek(0) 
       img2.save(UPLOAD_FOLDER + '/crops/' + zipfile) 

Quand je frappe télécharger il me donne cette erreur:

AttributeError: 'JpegImageFile' object has no attribute 'read'

S'il vous plaît de l'aide pour résoudre cela?

+1

Bonjour, avez-vous essayé d'enlever .stream? zipfile.read() c'est le seul dont vous avez besoin – gtzinos

+1

Yea !! maintenant ça marche, merci mec :) – swordfish

Répondre

1

Vous devez supprimer .stream

zipfile.read() son seul dont vous avez besoin.