def check_save_advertisement_pictures(advertisement_pictures, model=None, update=None): '''检查保存图片大小。保存''' for picture in advertisement_pictures: if (update is not None) and (model is not None): #todo 如果时修改,得到旧图片。? old_picture = str(model.base_path) + str(model.rel_path) + '/' + str(model.picture_name) if picture.filename == '': # 没图片,就不更新咯。? return True if not allowed_file_extension(picture.filename, ADVERTISEMENT_ALLOWED_EXTENSION): # 判断是否是合理图片 flash(u'图片格式不支持, png, jpeg支持', 'error') return False upload_name = picture.filename base_path = ADVERTISEMENT_BASE_PATH # 得到保存广告图片绝对路径 rel_path = ADVERTISEMENT_UPLOAD_FOLDER # 得到广告图片的相对路径 picture_name = time_file_name(secure_filename(upload_name)) # 得到加工后图片的名字 picture.save(os.path.join(base_path + rel_path + '/', picture_name)) # 保存图片到指定文件夹 image = Image.open(os.path.join(base_path + rel_path + '/', picture_name)) # 得到图片 # 这里只有先保存后才能在服务器中得到图片,所以才先保存后判断的么。? if image.size != (400, 100): flash(u'图片需要固定大小 400 * 100', 'error') os.remove(os.path.join(base_path + rel_path + '/', picture_name)) # 删除不合规矩的图片 return False # 各个字段值赋值 model.base_path = base_path model.rel_path = rel_path model.picture_name = picture_name if (update is not None) and (model is not None): try: os.remove(old_picture) except: display = "remove %s failed" % old_picture flash(display, 'error') return True
def check_save_gift_pictures(gift_pictures, model=None, update=None): """200*200的图片""" for picture in gift_pictures: if (update is not None) and (model is not None): old_picture = str(model.base_path) + str(model.rel_path) + '/' + str(model.pic_name) if picture.filename == '': # 或许没有图片,那么图片不更新 return True if not allowed_file_extension(picture.filename, GIFT_ALLOWED_EXTENSION): flash(u'图片格式不支持啊,png,jpeg支持', 'error') return False upload_name = picture.filename base_path = GIFT_BASE_PATH rel_path = GIFT_UPLOAD_FOLDER pic_name = time_file_name(secure_filename(upload_name)) picture.save(os.path.join(base_path+rel_path+'/', pic_name)) image = Image.open(os.path.join(base_path+rel_path+'/', pic_name)) if image.size != (200, 200): flash(u'图片需要固定大小的哦 200 * 200', 'error') os.remove(os.path.join(base_path+rel_path+'/', pic_name)) return False model.base_path = base_path model.rel_path = rel_path model.pic_name = pic_name if (update is not None) and (model is not None): try: os.remove(old_picture) except: display = "remove %s failed" % old_picture flash(display, 'error') return True