upload.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:tumanov_castleoaks 作者: Roamdev 项目源码 文件源码
def upload_file(url, timeout=5):
    """
        ???????? ????? ?? ???? ?? ????????? ????.

        ??????:
            from libs.upload import *
            ...

            try:
                uploaded_file = upload_file('http://host.ru/image.jpg')
            except URLError as e:
                return JsonResponse({
                    'message': str(e.msg),
                }, status=e.code)

            request.user.avatar.save(uploaded_file.name, uploaded_file, save=False)
            uploaded_file.close()

            try:
                request.user.full_clean()
            except ValidationError as e:
                request.user.avatar.delete(save=False)
                return JsonResponse({
                    'message': ', '.join(e.messages),
                }, status=400)
            else:
                request.user.save()
    """
    logger.debug('Uploading %s...', url)
    with contextlib.closing(urlopen(url, timeout=timeout)) as fp:
        headers = fp.info()

        file_name = url.split('/')[-1]
        content_type = headers.get('content-type')
        file_size = headers.get('content-length')
        charset = 'utf-8'

        tmp = TemporaryUploadedFile(file_name, content_type, file_size, charset, {})

        while True:
            block = fp.read(8 * 1024)
            if not block:
                break
            tmp.write(block)

        logger.debug('Uploaded %s to file %s', url, tmp.file.name)

    tmp.seek(0)
    tmp.flush()
    return tmp
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号