def upload_house_image(house_id): """ 1. 取到上传的图片 2. 进行七牛云上传 3. 将上传返回的图片地址存储 4. 进行返回 :return: """ # 1. 取到上传的图片 try: house_image_file = request.files.get("house_image").read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数不全") # 2. 查询房屋是否存在 try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询房屋失败") if not house: return jsonify(errno=RET.NODATA, errmsg="房屋不存在") # 3. 上传到七牛云 try: url = storage_image(house_image_file) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片失败") # 4. 初始化房屋的图片模型 house_image = HouseImage() # 设置相关数据 house_image.house_id = house.id house_image.url = url # 判断是否有首页图片 if not house.index_image_url: # 保存图片地址 house.index_image_url = url # 更新到数据库 try: db.session.add(house_image) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="保存数据失败") return jsonify(errno=RET.OK, errmsg="OK", data={"url": QINIU_DOMIN_PREFIX + url})
def save_house_image(): """ 保存上传的房屋图片 1.接收房屋id和房屋文件对象 2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在) 3.讲房屋图片上传到七牛云 4.创建HouseImage对象并保存房屋图片记录 5.放回应答 :return: """ # 1.接收房屋id和房屋文件对象 house_id = request.form.get('house_id') image_file = request.files.get('house_image') if not all([house_id, image_file]): return jsonify(errno=RET.PARAMERR, errmsg='参数缺失') # 2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在) try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='获取房屋信息失败') if not house: return jsonify(errno=RET.NODATA, errmsg='房屋不存在') # 3.讲房屋图片上传到七牛云 try: key = storage_image(image_file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='上传房屋图片失败') # 4.创建HouseImage对象并保存房屋图片记录 house_image = HouseImage() house_image.house_id = house_id house_image.url = key if not house.index_image_url: house.index_image_url = key try: db.session.add(house_image) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='保存房屋图片记录失败') # 5.放回应答 img_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(errno=RET.OK, errmsg='上传房屋图片记录成功', data={'img_url': img_url})
def save_house_image(): """ 保存上传房屋图片: 1.接收房屋id和房屋图片文件对象 2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在) 3.将房屋的图片上传到七牛云 4.创建HouseImage对象并保存房屋图片记录 5.返回应答,上传成功 """ # 1.接收房屋id和房屋图片文件对象 house_id = request.form.get("house_id") file = request.files.get("house_image") if not all([house_id, file]): return jsonify(errno=RET.PARAMERR, errmsg="缺少参数") # 2.根据房屋id获取房屋的信息(如果获取不到,说明房屋不存在) try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="获取房屋信息失败") if not house: return jsonify(errno=RET.NODATA, errmsg="房屋不存在") # 3.将房屋的图片上传到七牛云 try: key = storage_image(file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="上传房屋图片失败") # 4.创建HouseImage对象并保存房屋图片记录 house_image = HouseImage() house_image.house_id = house_id house_image.url = key # 判断房屋是否设置了默认图片 if not house.index_image_url: house.index_image_url = key try: db.session.add(house_image) db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="保存房屋图片记录失败") # 5.返回应答,上传成功 img_url = constants.QINIU_DOMIN_PREFIX + key print "img_url:", img_url print 'RET.OK:', RET.OK return jsonify(errno=RET.OK, errmsg="上传房屋图片成功", data={"img_url": img_url})
def set_user_avatar(): """ 0. 判断用户是否登录 1. 获取到上传的文件 2. 再将文件上传到七牛云 3. 将头像信息更新到当前用户的模型中 4. 返回上传的结果<avatar_url> :return: """ # 0.判断用户是否登录 user_id = g.user_id try: user = User.query.get(user_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='查询用户信息异常') # 1.获取到上传的文件 avatar = request.files.get('avatar') # 1.1 参数判断 if not avatar: return jsonify(errno=RET.PARAMERR, errmsg='图片数据为空') # 2.再将文件上传到七牛云 try: avatar_name = storage_image(avatar.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='图片上传到七牛云异常') # 3.将头像信息更新到当前用户的模型中 if avatar_name: user.avatar_url = avatar_name try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg='头像保存数据库异常') # 完整头像地址返回 full_url = QINIU_DOMIN_PREFIX + avatar_name # avatar_url = full_url # 4.返回上传的结果 < avatar_url > return jsonify(errno=RET.OK, errmsg='上传个人头像成功', data={"avatar_url": full_url})
def set_user_avatar(): """ 设置用户头像信息: # 0. 判断用户是否登录 # 1. 获取用户上传头像文件对象 # 2. 把头像文件上传到七牛云 # 3. 设置用户的头像记录 # 4. 返回应答,上传头像成功 """ # 1. 获取用户上传头像文件对象 file = request.files.get("avatar") if not file: return jsonify(errno=RET.PARAMERR, errmsg="缺少数据") # 2. 把头像文件上传到七牛云 try: key = storage_image(file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传用户头像失败") # 3. 设置用户的头像记录 # user_id = session.get("user_id") user_id = g.user_id try: user = User.query.get(user_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询用户信息失败") if not user: return jsonify(errno=RET.USERERR, errmsg="用户不存在") # 设置用户头像地址 user.avatar_url = key try: db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="设置用户头像记录失败") # 4. 返回应答,上传头像成功 avatar_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(errno=RET.OK, errmsg="上传头像成功", data={"avatar_url": avatar_url})
def set_user_avatar(): """ 0. 判断用户是否登录 1. 获取到上传的文件 2. 再将文件上传到七牛云 3. 将头像信息更新到当前用户的模型中 4. 返回上传的结果<avatar_url> :return: """ # 0. 判断用户是否登录 user_id = g.user_id # 1. 获取到上传的文件 try: avatar_file = request.files.get("avatar").read() except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.PARAMERR, errmsg="参数错误") # 2. 再将文件上传到七牛云 try: url = storage_image(avatar_file) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传图片错误") # 3. 将头像信息更新到当前用户的模型中 try: user = User.query.get(user_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="获取用户数据错误") if not user: return jsonify(errno=RET.USERERR, errmsg="用户不存在") # 设置用户模型相关数据 user.avatar_url = url # 将数据保存到数据库 try: db.session.commit() except Exception as e: current_app.logger.error(e) db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="保存用户数据错误") # 4. 返回上传的结果<avatar_url> return jsonify(errno=RET.OK, errmsg="OK", data={"avatar_url": QINIU_DOMIN_PREFIX + url})
def set_user_avatar(): """ 设置用户头像信息: 1.获取用户上传头像的文件对象 2.调用封装的七牛云方法,上传到七牛云 3.设置用户的头像记录 4.返回应答 :return: """ # 1.获取用户上传头像的文件对象 avatar_file = request.files.get('avatar') if not avatar_file: return jsonify(errno=RET.PARAMERR, errmsg='缺少数据') # 2.调用封装的七牛云方法,上传到七牛云 try: key = storage_image(avatar_file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败') # 3.设置用户的头像记录 user_id = g.user_id try: user = User.query.get(user_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='查询用户信息失败') if not user: return jsonify(errno=RET.USERERR, errmsg='用户不存在') user.avatar_url = key try: db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='设置用户头像记录失败') # 4.返回应答 avatar_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(errno=RET.OK, errmsg='上传头像成功', data={'avatar_url': avatar_url})
def upload_house_image(house_id): """ 1. 取到上传的图片 2. 进行七牛云上传 3. 将上传返回的图片地址存储 4. 进行返回 :return: """ # 获取参数 house_image = request.files.get('images') house_id = house_id user = g.ih_user_profile if not user: return jsonify(errno=RET.SESSIONERR, errmsg="用户未登录") # 将图片上传到七牛云 try: image_name = storage_image(house_image.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="上传图片到七牛云异常") # 图片名称没有值 if not image_name: return jsonify(errno=RET.DBERR, errmsg="上传图片到七牛云异常") image = HouseImage() image.url = constants.QINIU_DOMIN_PREFIX + image_name image.house_id = house_id data = { "url": image.url, } try: db.session.add(image) db.session.commit() except Exception as e: current_app.logger.error(e) # 数据库回滚 db.session.rollback() return jsonify(errno=RET.DBERR, errormsg="保存数据对象异常") return jsonify(error=RET.OK, errmsg="上传图片成功", data=data)
def upload_house_image(house_id): """ 1. 取到上传的图片 2. 进行七牛云上传 3. 将上传返回的图片地址存储 4. 进行返回 :return: """ house_id = house_id images = request.files.get("house_image") if not all([house_id, images]): return jsonify(errno=RET.PARAMERR, errmsg="参数不足") try: house = House.query.get(house_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg="查询房间数据异常") if house is None: return jsonify(errno=RET.NODATA, errmsg="房间不存在") images_data = images.read() try: file_name = storage_image(images_data) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg="上传失败") house_image = HouseImage() house_image.house_id = house_id house_image.url = file_name try: db.session.add(house_image) db.session.commit() except Exception as e: db.session.rollback() return jsonify(errno=RET.DBERR, errmsg="保存图片异常") image_url = constants.QINIU_DOMIN_PREFIX + file_name print(image_url) return jsonify(errno=RET.OK, errmsg="OK", data={"url": image_url})
def set_user_avatar(): ''' 设置用户头像信息: 1、获取用户上传头像的对象 2、头像文件上传到七牛云 3、设置用户头像记录 4、返回应答,上传成功 ''' # 1、获取用户上传头像的对象 file = request.files.get('avatar') if not file: return jsonify(errno=RET.PARAMERR, errmsg='缺少数据') # 2、头像文件上传到七牛云 try: key = storage_image(file.read()) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.THIRDERR, errmsg='上传用户头像失败') # 3、设置用户头像记录 # user_id = session.get('user_id') user_id = g.user_id try: user = User.query.get(user_id) except Exception as e: current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='查询用户信息失败') if not user: return jsonify(errno=RET.USERERR, errmsg='用户不存在') # 设置用户头像地址 user.avatar_url = key try: db.session.commit() except Exception as e: db.session.rollback() current_app.logger.error(e) return jsonify(errno=RET.DBERR, errmsg='设置用户头像记录') # 4、返回应答,上传成功 avatar_url = constants.QINIU_DOMIN_PREFIX + key return jsonify(errno=RET.OK, errmsg='上传头像成功', data={'avatar_url': avatar_url})