上传文件的特殊处理formdata

上传文件 链接的处理

from contextlib import closing
from io import BytesIO
from requests_toolbelt.multipart.encoder import MultipartEncoder

def judge_url_size(self, url, size_limit):
    #获取url地址的大小
    content = bytearray()
    with closing(
            requests.get(url, stream=True)) as req:  # stream=True 设置文本流使用迭代器获取 如:req.iter_lines
        if 'content-length' in req.headers:
            if int(req.headers['content-length']) > size_limit:
                raise Exception(
                    'content-length too many. content-length: ' + str(req.headers['content-length']))
            content = req.content
        else:
            size_temp = 0
            for line in req.iter_lines():
                if line:
                    size_temp += len(line)
                    if size_temp > size_limit:
                        raise Exception('content-length too many.')
                    content.extend(line)
    return bytes(content)

data = MultipartEncoder(
fields={
# "file": (name, open(file_path, 'rb'), "type=txt"),
# "file": (name, open(file_path, 'rb'), f'type={type}'),
"file": (name, BytesIO(file)),
}
)

posted @   寻月隐君  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示