Example #1
0
    def post(self):
        img_data = self.request.files['house_image'][0]['body']
        house_id = self.get_argument('house_id')
        print 'HOUSE_ID%s' % house_id
        # 上传文件到七牛
        try:
            img_name = storage(img_data)
        except Exception as e:
            logging.error(e)
            img_name = None
        if not img_name:
            return self.write({'errno': RET.THIRDERR, 'errmsg': 'qiniu error'})

        try:
            img_tmp = House_image(hi_house_id=house_id, hi_url=img_name)
            self.session_sql.add(img_tmp)
            self.session_sql.commit()
        except Exception as e:
            logging.error(e)
            return self.write({'errno': RET.DBERR, 'errmsg': 'upload failed'})
        # 设置最新上传的图片为房源首页图片
        try:
            house_tmp = self.session_sql.query(HouseInfo).filter(
                HouseInfo.hi_house_id == house_id).first()
        except Exception as e:
            logging.error(e)
        house_tmp.hi_index_image_url = img_name
        self.session_sql.commit()
        url = image_url_prefix + img_name
        return self.write({'errno': RET.OK, 'errmsg': 'OK', 'url': url})
Example #2
0
    def post(self):

        user_id = self.session.data["user_id"]

        try:
            avatar = self.request.files["avatar"][0]["body"]
        except Exception as e:
            logging.info(e)
            return self.write(dict(errno=RET.PARAMERR, errmsg="参数出错"))
        try:
            img_name = storage(avatar)
        except Exception as e:
            logging.info(e)
            img_name = None
        if not img_name:
            return self.write({"errno": RET.THIRDERR, "errmsg": "qiniu error"})
        try:
            print "99999"
            self.db.execute_rowcount(
                "update ih_user_profile set up_avatar=%(avatar)s "
                "where up_user_id=%(user_id)s",
                avatar=img_name,
                user_id=user_id)
        except Exception as e:
            print "____________=====+_____"
            logging.info(e)
            return self.write({"errno": RET.DBERR, "errmsg": "upload failed"})
        img_url = config.image_url_prefix + img_name
        self.write({"errno": RET.OK, "errmsg": "OK", "data": img_url})
Example #3
0
    def post(self, *args, **kwargs):
        house_id = self.get_argument("house_id")
        files = self.request.files.get("house_image")
        if not files:
            return self.write({"errcode": RET.PARAMERR, "errmsg": "请选择图片"})
        # 上传图片到七牛
        house_image = files[0]['body']
        image_name = storage(house_image)
        # print(image_name)
        if not image_name:
            return self.write({
                "errcode": RET.THIRDERR,
                "errmsg": "qiniu error"
            })

        try:
            #1、保存图片到数据库,并且设置房屋的主图片
            sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);"
            self.db.cursor().execute(sql, (house_id, image_name))
            sql ="update ih_house_info set hi_index_image_url=%s " \
                  "where hi_house_id=%s and hi_index_image_url is null;"
            self.db.cursor().execute(sql, (image_name, house_id))
            self.db.commit()
        except Exception as e:
            self.db.rollback()
            logging.error(e)
            return self.write({
                "errcode": RET.DBERR,
                "errmsg": "upload failed"
            })

        img_url = iamage_base_url + image_name
        # print(img_url)
        self.write({"errcode": RET.OK, "errmsg": "OK", "url": img_url})
Example #4
0
	def post(self):
		#获取图片文件参数
		try:
			image_data = self.request.files["avatar"][0]["body"]
		except Exception as e:
			logging.error(e)
			return self.write(dict(errcode=RET.NODATA,errmsg="未传图片"))
		print image_data
		#调用七牛上传图片
		try:
			#调用storage返回一个图片唯一识别码key
			key = storage(image_data)
		except Exception as e:
			logging.error(e)
			return self.write(dict(errcode=RET.THIRDERR,errmsg="保存失败"))

		#从session中取出user_id
		user_id = self.session.data["user_id"]
		#保存图片名称到数据库
		try:
			res = self.db.execute("update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s",avatar=key,user_id=user_id)
		except Exception as e:
			logging.error(e)
			return self.write(dict(errcode=RET.DBERR,errmsg="数据库保存失败"))
		self.write(dict(errcode=RET.OK,errmsg="保存成功",data="%s%s"%(config.image_url_prefix,key)))
Example #5
0
 def post(self):
     user_id = self.session.data['user_id']
     # try:
     # 	image_data = self.request.files["avater"][0]["body"]
     # 	if not image_data:
     # 		return self.write(dict(errno =RET.PARAMERR, errmsg ="未传图片" )
     # except Exception as e:
     # 	logging.error(e)
     # 	return self.write("")
     try:
         key = storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.PARAMERR, errmsg="上传失败"))
     try:
         self.db.execute(
             "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s",
             avatar=image_data,
             user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="保存错误"))
     else:
         return self.write(
             dict(errno=RET.OK,
                  errmsg="保存成功",
                  data="%s%s" % (config.image_url_prefix, image_data)))
Example #6
0
 def post(self):
     user_id = self.session.data.get("user_id")
     try:
         pic_data = self.request.files.get("avatar")[0].body
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.PAEAMERR, errmsg="参数错误"))
     try:
         pic_name = storage(pic_data)
     except Exception as e:
         logging.error(e)
         pic_name = None
     if not pic_name:
         return self.write(dict(errno=RET.THIRDERR, errmsg="七牛保存失败"))
     try:
         ret = self.db.execute(
             "update ih_user_profile set up_avatar = %s where up_user_id = %s",
             pic_name, user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="数据库存储失败"))
     # pic_url = config.image_url_prefix + "/" + pic_name + ".jpg"
     pic_url = image_url_prefix + pic_name
     self.write(
         dict(errno=RET.OK,
              errmsg="OK",
              data={
                  "pic_url": pic_url,
                  "user_id": user_id
              }))
Example #7
0
 def post(self):
     files = self.request.files.get("avatar")
     if not files:
         return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
     avatar = files[0]["body"]
     # 调用七牛上传图片
     try:
         file_name = storage(avatar)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))
     #从session数据中取出user_id
     user_id = self.session.data.get("user_id")
     # 保存图片名(即图片url)到数据库中
     sql = "update tor_user_info set ui_avatar=%(avatar)s where ui_user_id=%(user_id)s"
     try:
         row_count = self.db.execute_rowcount(sql,
                                              avatar=file_name,
                                              user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg="保存错误"))
     data = "%s/%s" % (constants.QINIU_URL_PREFIX, file_name)
     # print("url:%s" %data)
     print("avatar_row_count:%s" % row_count)
     self.session.data["avatar"] = data
     self.write(
         dict(errcode=RET.OK,
              errmsg="保存成功",
              data="%s/%s" % (constants.QINIU_URL_PREFIX, file_name)))
Example #8
0
    def post(self, *args, **kwargs):
        # 获取参数
        try:
            image_data = self.request.files['avatar'][0]['body']
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.PARAMERR, errmsg='参数错误'))
        # 检查参数
        self.check_args(image_data)

        # 上传七牛云空间
        try:
            image_name = storage(image_data)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.THIRDERR, errmsg='头像上传七牛错误'))

        # 更新数据库
        user_id = self.session.data.get('user_id')
        ih_user_profile = ihome_model('ih_user_profile')
        item = dict(up_avatar=image_name)
        try:
            self.db.query(ih_user_profile).filter(
                ih_user_profile.up_user_id == user_id).update(item)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.DBERR, errmsg='保存用户头像失败'))

        # 返回数据
        self.write(
            dict(errno=RET.OK,
                 errmsg='OK',
                 data='%s%s' % (config.image_url_prefix, image_name)))
Example #9
0
 def post(self):
     # 读取图片文件数据
     try:
         image_data = self.request.files['avatar'][0]['body']
     except Exception as e:
         # 参数出错
         logging.error(e)
         return self.write(dict(errno=RET.PARAMERR, essmsg='参数错误'))
     # 将图片存储到七牛
     try:
         image_name = storage(image_data)
     except Exception as e:
         logging.error(e)
         image_name = None
     # storage函数会返回七牛存储器中自动生成的文件名,若为空则存储出错
     if not image_name:
         return self.write({'errno': RET.THIRDERR, 'errmsg': 'qiniu error'})
     try:
         # 将头像文件名存入mysql数据库
         usr = self.session_sql.query(UserProfile).filter(
             UserProfile.up_mobile == self.session.data['mobile']).first()
         usr.up_avatar = image_name
         self.session_sql.commit()
     except Exception as e:
         logging.error(e)
         return self.write({'errno': RET.DBERR, 'errmsg': 'upload failed'})
     # 加上外链域名组合成完整url
     img_url = image_url_prefix + image_name
     # 返回数据给ajax
     return self.write({'errno': RET.OK, 'errmsg': 'OK', 'url': img_url})
Example #10
0
    def create(self, validated_data):
        # 1,获取用户对象


        code = validated_data['img'].replace('data:image/jpeg;base64,', '').replace('data:image/png;base64,','')
        imgData = base64.b64decode(code)
        url = storage(imgData)

        del validated_data['img']



        blog = super().create(validated_data)


        blog.user_id = 12

        blog.img = 'http://pps8t245f.bkt.clouddn.com/'+url
        # 获取当前时间
        time_now = int(time.time())
        # 转换成localtime
        time_local = time.localtime(time_now)
        # 转换成新的时间格式(2016-05-09 18:59:20)
        dt = time.strftime("%Y-%m-%d", time_local)
        blog.time = dt

        blog.save()

        from celery_tasks.html.tasks import generate_static_sku_detail_html
        generate_static_sku_detail_html.delay(blog.id)

        return blog
Example #11
0
 def post(self, *args, **kwargs):
     '''
     头像上传接口
     '''
     # 接受上传的数据
     try:
         image_data = self.request.files['avatar'][0]['body']
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='bb', msg='前端向后台传输图片失败'))
     # 如果后台接收到图片数据,把图片数据作为参数传递给封装好的七牛接口
     try:
         key = storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='cc', msg="向七牛传递数据出错"))
     # 七牛上传图片成功,拿到返回的key,把key保存到数据库
     user_id = self.session.data['user_id']
     sql = "update ih_user_profile set up_avatar = %(avatar)s where up_user_id = %(user_id)s "
     try:
         row_count = self.db.execute_rowcount(sql,
                                              avatar=key,
                                              user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(code="dd", msg="更新数据库图片失败"))
     # 保存成功,修改session中的头像图片
     self.session.data['avatar'] = "%s%s" % (config.qiniu_url, key)
     self.session.save()
     return self.write(
         dict(code="00", msg="ok", data="%s%s" % (config.qiniu_url, key)))
Example #12
0
    def post(self):
        user_id = self.session.data["user_id"]
        # user_id = self.get_argument("user_id")  用于测试
        house_id = self.get_argument("house_id")
        house_image = self.request.files["house_image"][0]["body"]

        #调用七牛接口上传图片
        img_name = storage(house_image)

        if not img_name:
            return self.write({
                "errcode": RET.THIRDERR,
                "errmsg": "qiniu error"
            })

        try:
            #保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url)
            #将用户上传的第一张图片作为该房屋的主图片
            sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);"\
             "update ih_house_info set hi_index_image_url=%s where hi_house_id=%s and hi_index_image_url is null "
            self.db.execute(sql, house_id, img_name, img_name, house_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="上传失败"))
        img_url = config.image_url_prefix + img_name
        self.write(dict(errcode=RET.OK, errmsg="OK", url=img_url))
Example #13
0
	def post(self):
		user_id = self.session.data["user_id"]
		try:
			avatar = self.request.files["avatar"][0]["body"]
		except Exception as e:
			logging.error(e)
			return self.write(dict(errno=RET.PARAMERR, errmsg="参数错误"))

		try:
			img_name = storage(image_data)
		except Exception as e:
			logging.error(e)
			img_name = None

		if not img_name:
			return self.write(dict(errno=RET.THIRDERR, errmsg="qiniu error"))

		try:
			ret = self.db.execute("update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s", avatar=img_name, user_id=user_id)
		except Exception as e:
			logging.error(e)
			return self.write(dict(errno=RET.DBERR, errmsg="upload failed"))
			
		img_url = image_url_prefix + img_name
		self.write(dict(errno=RET.OK, errmsg="OK", url=img_url))
Example #14
0
def save_house_image():
    """ 保存房屋的图片

    Request Body Params:
        image_file: 图片
        house_id: 房屋id

    Returns:
        对象的状态码, 和响应信息

    """
    image_file = request.files.get('image_file')
    # 多媒体表单中是可以携带字符串参数的, 所以我们可以在表单中同时获取到它
    house_id = request.form.get('house_id')

    # 参数效验
    if not all([image_file, house_id]):
        return jsonify(errcode=RET.PARAMERR, errmsg="参数错误")

    # 判断房屋id的正确性
    try:
        house = House.query.get(house_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errcode=RET.DBERR, errmsg="数据库异常")
    else:
        if house is None:
            return jsonify(errcode=RET.NODATA, errmsg="房屋不存在")

    # 保存图片到七牛中
    image_data = image_file.read()
    try:
        image_url = storage(current_app.config.get('QINIU_ZONE_HOST'),
                            image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errcode=RET.THIRDERR, errmsg='保存图片失败')

    # 保存图片信息到数据库中
    house_image = HouseImage(house_id=house_id, url=image_url)
    db.session.add(house_image)

    # 保存作为主页的房屋图片, 只设置一张, 先判断它是否已经设置过, 否则不设置
    if not house.index_image_url:
        house.index_image_url = image_url
        db.session.add(house)

    try:
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return jsonify(errcode=RET.DBERR, errmsg="主页图片保存失败")

    return jsonify(errcode=RET.OK, errmsg='ok', data={'image_url': image_url})
Example #15
0
    def update(self, instance, validated_data):

        icon = validated_data["head"]
        img_name = random.randint(0, 999999)

        url = storage(icon.read())

        instance.head = url

        instance.save()

        # 3,返回
        return instance
Example #16
0
 def post(self):
     user_id = self.session.data["user_id"]
     avatar = self.request.files["avatar"][0]["body"]
     img_name = storage(avatar)
     if not img_name:
         return self.write({"errno": 1, "errmsg": "qiniu error"})
     try:
         ret = self.db.execute(
             "update ih_user_profile set up_avatar=%s where up_user_id=%s",
             img_name, user_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errno": 2, "errmsg": "upload failed"})
     img_url = image_url_prefix + img_name
     self.write({"errno": 0, "errmsg": "OK", "url": img_url})
Example #17
0
 def post(self):
     user_id = self.session.data["user_id"]
     house_id = self.get_argument("house_id")
     house_image = self.request.files["house_image"][0]["body"]
     img_name = storage(house_image)
     if not img_name:
         return self.write({"errno": RET.THIRDERR, "errmsg": "qiniu error"})
     try:
         self.db.execute(
             "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);update ih_house_info set hi_index_image_url=%s where hi_house_id=%s and hi_index_image_url is null;",
             house_id, img_name, img_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errno": RET.DBERR, "errmsg": "upload failed"})
     img_url = image_url_prefix + img_name
     self.write({"errno": RET.OK, "errmsg": "OK", "url": img_url})
Example #18
0
 def post(self):
     '''
     用户上传头像的接口
     :return:
     '''
     try:
         image_data = self.request.files['avatar'][0]['body']
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='bb',msg='前端向服务端上传图片失败'))
     #如果没有问题,拿到头像之后需要上传,上传过程也可能会出错
     try:
         key = image_storage.storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='cc',msg='向七牛上传图片失败'))
Example #19
0
 def post(self, *args, **kwargs):
     '''
     我的房屋图像上传接口
     '''
     # 接受上传的数据
     house_id = self.get_argument("house_id")
     logging.info("house_id: %s" % (house_id))
     try:
         image_data = self.request.files['house_image'][0]['body']
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='01', msg='前端向后台传输图片失败'))
     # 如果后台接收到图片数据,把图片数据作为参数传递给封装好的七牛接口
     try:
         key = storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(code='02', msg="向七牛传递数据出错"))
     # 七牛上传图片成功,拿到返回的key,把key保存到数据库
     # 两步操作,也要用到数据库回滚
     # 1.在ih_house_image表中插入每一张的图片信息
     sql = " insert into ih_house_image ( hi_house_id,hi_url,hi_ctime) VALUES (%(house_id)s,%(url)s,now())"
     try:
         image_id = self.db.execute_rowcount(sql, house_id=house_id, url=key)
     except Exception as e:
         logging.error(e)
         return self.write(dict(code="03", msg="表ih_house_image插入数据失败"))
     logging.info("表ih_house_image数据插入成功")
     # 表ih_house_info中的hi_index_image_url字段(房屋的主图片)插入数据
     sql = " update ih_house_info set hi_index_image_url = %s where hi_house_id = %s and hi_index_image_url = '' "
     try:
         logging.info("开始更新表ih_house_info里的hi_index_image_url字段")
         self.db.execute(sql, key, house_id)
     except Exception as e:
         logging.error(e)
         logging.info("表ih_house_info表图片字段insert failed  , rollback begin")
         # 开始把第一次插入的数据删除
         try:
             self.db.execute(" delete from ih_house_image where hi_image_id = %s ", image_id)
         except Exception as e:
             logging.error(e)
             logging.info(" rollback failed ,删除失败! ")
             return self.write(dict(code="04", msg="rollback 失败"))
         else:
             logging.info(" rollback success! ")
     return self.write(dict(code="00", msg="ok", data="%s%s" % (config.qiniu_url, key)))
Example #20
0
 def post(self):
     user_id = self.session.data["user_id"]
     house_id = self.get_argument("house_id")
     house_image = self.request.files["house_image"][0]["body"]
     # 调用我们封装好的上传七牛的storage方法上传图片
     img_name = storage(house_image)
     if not img_name:
         return self.write({"errno":RET.THIRDERR, "errmsg":"qiniu error"})
     try:
         # 保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url)
         # 我们将用户上传的第一张图片作为房屋的主图片
         sql = "insert into ih_house_image(hi_house_id,hi_url) values(%s,%s);" \
               "update ih_house_info set hi_index_image_url=%s " \
               "where hi_house_id=%s and hi_index_image_url is null;"
         self.db.execute(sql, house_id, img_name, img_name, house_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errno":RET.DBERR, "errmsg":"upload failed"})
     img_url = config.image_url_prefix + img_name
     self.write({"errno":RET.OK, "errmsg":"OK", "url":img_url})
Example #21
0
    def post(self):
        user_id = self.session.data["user_id"]
        house_id = self.get_argument("house_id")
        house_image = self.request.files["house_image"][0]["body"]
        # 调用封装好的上传七牛的storage方法上传图片
        img_name = storage(house_image)
        if not img_name:
            return self.write(dict(errcode=RET.THIRDERR, errmsg="七牛上传错误"))
        try:
            # 保存图片到tor_house_image表中,并且设置房屋的主图片(tor_house_info表中的hi_index_image_url)
            # 将用户上传的第一张图片作为房屋的主图片
            sql = "insert into tor_house_image(hi_house_id, hi_url) values(%s,%s);" \
                  "update tor_house_info set hi_index_image_url=%s where hi_house_id=%s and hi_index_image_url is null;"

            self.db.execute(sql, house_id, img_name, img_name, house_id)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="图片存储错误"))
        img_url = constants.QINIU_URL_PREFIX + img_name
        self.write(dict(errcode=RET.OK, errmsg="ok", url=img_url))
Example #22
0
def set_user_portrait():
    """ 设置用户头像

    Requst Param:
        file_data: 图片数据(多媒体表单上传)
    Returns:
        返回对应的状态码和错误信息

    """
    # 它在登录装饰器中, 已经获取并保存在g对象中, 所以我们可以直接从g对象中获取
    user_id = g.user_id

    # 获取图片
    image_file = request.files.get('image_file')

    if image_file is None:
        return jsonify(errcode=RET.PARAMERR, errmsg="缺少参数, 图片未上传")

    # 读取图片文件数据
    image_data = image_file.read()

    try:
        # 获取域名: 在配置文件中设置
        host = current_app.config.get('QINIU_ZONE_HOST')
        # 获取图片完整链接
        image_url = storage(host, image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errcode=RET.THIRDERR, errmsg="图片上传失败")

    # 保存图片链接到数据库中
    try:
        user = User.query.filter_by(id=user_id).update({'avatar_url': image_url})
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(errcode=RET.DBERR, errmsg="图片信息保存失败")

    # 保存成功返回
    return jsonify(errcode=RET.OK, errmsg="图片上传成功", image_url=image_url)
Example #23
0
 def post(self):
     try:
         image_data = self.request.files["avatar"][0]["body"]
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.PARAMERR, errmsg="未传图片"))
     try:
         key = storage(image_data)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.THIRDERR, errmsg="上传失败"))
     user_id = self.session.data["user_id"]
     sql = "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s"
     try:
         self.db.execute(sql, avatar=key, user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.DBERR, errmsg="保存错误"))
     image_url = config.image_url_prefix + key
     return self.write(
         dict(errno=RET.OK, errmsg="保存成功", data="%s" % image_url))
Example #24
0
 def post(self):
     user_id = self.session.data["user_id"]
     try:
         avatar = self.request.files["avatar"][0]["body"]
     except Exception as e:
         logging.error(e)
         return self.write(dict(errno=RET.PARAMERR, errmsg="参数错误"))
     try:
         img_name = storage(avatar)
     except Exception as e:
         logging.error(e)
         img_name = None
     if not img_name:
         return self.write({"errno": RET.THIRDERR, "errmsg": "qiniu error"})
     try:
         ret = self.db.execute("update ih_user_profile set up_avatar=%s where up_user_id=%s", img_name, user_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errno": RET.DBERR, "errmsg": "upload failed"})
     img_url = config.image_url_prefix + img_name
     self.write({"errno": RET.OK, "errmsg": "OK", "url": img_url})
Example #25
0
    def post(self, *args, **kwargs):
        files = self.request.files.get("avatar")
        if not files:
            return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
        avatar = files[0]['body']

        #上传头像到七牛
        try:
            file_name = storage(avatar)
        except Exception as e:
            logging('上传头像失败', e)
            return self.write(dict(errcode=RET.PARAMERR, errmsg="上传头像失败"))

        try:
            cur = self.db.cursor()
        except Exception as e:
            logging.error("创建游标失败", e)
            return self.write(dict(errcode=RET.DATAERR, errmsg="上传头像失败"))

        # session = self.current_user.decode()
        # session = json.loads(session)
        # user_id = session['user_id']
        user_id = self.session['user_id']
        sql = 'update ih_user_profile set up_avatar = "%s" where up_user_id = %s' % (
            file_name, user_id)
        # print(sql)
        try:
            cur.execute(sql)
            self.db.commit()
        except Exception as e:
            self.db.rollback()
            logging('更新头像失败', e)
            return self.write(dict(errcode=RET.DATAERR, errmsg="上传头像失败"))
        finally:
            cur.close()

        self.write(
            dict(errcode=RET.OK,
                 errmsg="上传成功",
                 data="%s%s" % (iamage_base_url, file_name)))
Example #26
0
    def post(self, *args, **kwargs):
        # 获取参数
        house_id = self.get_argument('house_id')
        try:
            image_data = self.request.files['house_image'][0]['body']
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.PARAMERR, errmsg='参数错误'))

        # 检查参数
        self.check_args(image_data)

        # 上传七牛云空间
        try:
            image_name = storage(image_data)
        except Exception as e:
            logging.error(e)
            image_name = None

        if not image_name:
            return self.write(dict(errno=RET.THIRDERR, errmsg='房屋图片上传七牛错误'))

        # 保存到数据库
        # 保存图片路径到数据库ih_house_image表,并且设置房屋的主图片(ih_house_info中的hi_index_image_url)
        # 我们将用户上传的第一张图片作为房屋的主图片
        ih_house_info = ihome_model('ih_house_info')
        ih_house_image = ihome_model('ih_house_image')
        item = dict(hi_house_id=house_id, hi_url=image_name)
        try:
            self.db.execute(ih_house_image.__table__.insert(), item)
            self.db.query(ih_house_info).\
                filter(ih_house_info.hi_house_id == house_id, ih_house_info.hi_index_image_url == None).\
                update(dict(hi_index_image_url=image_name))
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.THIRDERR, errmsg='save data error'))
        # 返回数据
        img_url = config.image_url_prefix + image_name
        self.write(dict(errno=RET.OK, errmsg='OK', url=img_url))
Example #27
0
 def post(self):
     """头像"""
     # 获取user_id
     userId = self.session.data['user_id']
     try:
         avatar = self.request.files['avatarfan'][0]['body']
     except Exception as e:
         logging.error(e)
         return self.write({'errcode': RET.PARAMERR, 'errmsg': '参数错误'})
     try:
         imgName = storage(avatar)
     except Exception as e:
         logging.error(e)
         imgName = None
     if not imgName:
         return self.write({'errcode': RET.PARAMERR, 'errmsg': '参数错误'})
     try:
         ret = self.db.execute('update ih_user_profile set up_avatar=%s where up_user_id=%s', imgName, userId)
     except Exception as e:
         logging.error(e)
         return self.write({'errcode': RET.DBERR, 'errmsg': 'upload failed'})
     imgUrl = image_url_prefix + imgName
     self.write({'errcode': RET.OK, 'errmsg': 'OK', 'url': imgUrl})
Example #28
0
 def post(self):
     user_id = self.session.data["user_id"]
     try:
         avatar = self.request.files["avatar"][0]["body"]
     except Exception as e:
         logging.error(e)
         return self.write({"errno": RET.PARAMERR, "errmsg": "参数错误"})
     try:
         avatar_name = storage(avatar)
     except Exception as e:
         logging.error(e)
         avatar_name = None
         return self.write({"errno": RET.THIRDERR, "errmsg": "Qiniu Error"})
     try:
         ret = self.db.execute(
             "update ih_user_profile set up_avatar=%(avatar)s where up_user_id=%(user_id)s",
             avatar=avatar_name,
             user_id=user_id)
     except Exception as e:
         logging.error(e)
         return self.write({"errno": RET.DBERR, "errmsg": "数据库错误"})
     avatar_url = image_url_prefix + avatar_name
     self.write({"errno": RET.OK, "errmsg": "OK", "avatar": avatar_url})
Example #29
0
    def post(self):
        user_id = self.session.data["user_id"]

        # 获取头像图片数据, 返回一个列表
        avatar = self.request.files.get("avatar")
        if not avatar:
            return self.write(dict(errno=RET.PARAMERR, errmsg="未传头像"))
        try:
            img_name = storage(avatar[0].body)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errno=RET.THIRDERR, errmsg="上传头像失败"))

        # 操作数据库,保存头像信息
        sql = "update ih_user_profile set up_avatar=%s where up_user_id=%s"
        try:
            self.db.execute_rowcount(sql, img_name, user_id)
        except Exception as e:
            logging.error(e)
            return self.write({"errno": RET.DBERR, "errmsg": "upload failed"})

        img_url = image_url_prefix + img_name
        self.write({"errno": RET.OK, "errmsg": "OK", "url": img_url})