common-upload上传文件功能封装类分享


当然,我可以为你提供一个简单的`common-upload`文件上传功能封装类的示例。这里我们使用Python语言,并假设我们使用了一个简单的HTTP客户端库(如`requests`)来发送文件。请注意,实际使用时你可能需要根据具体的API或框架进行调整。


import requests

class CommonUpload:
    """
    封装了文件上传功能的类

    Attributes:
        base_url (str): 文件上传服务的基础URL
    """

    def __init__(self, base_url):
        """
        初始化CommonUpload类

        Args:
            base_url (str): 文件上传服务的基础URL
        """
        self.base_url = base_url

    def upload_file(self, file_path, api_endpoint='/upload', files=None, headers=None):
        """
        上传文件到指定服务

        Args:
            file_path (str): 要上传的文件路径
            api_endpoint (str, optional): 文件上传的API端点路径. Defaults to '/upload'.
            files (dict, optional): 额外的文件字典,用于同时上传多个文件. 默认为None.
            headers (dict, optional): 请求头字典. 默认为None,表示使用默认请求头.

        Returns:
            requests.Response: 响应对象
        """
        if files is None:
            files = {'file': open(file_path, 'rb')}
        else:
            # 如果已提供files,确保file_path也被包含在内
            files['file'] = open(file_path, 'rb')

        if headers is None:
            headers = {}

        url = f"{self.base_url}{api_endpoint}"
        response = requests.post(url, files=files, headers=headers)

        return response

# 使用示例
if __name__ == "__main__":
    # 假设你的上传服务URL是http://example.com
    uploader = CommonUpload('http://example.com')
    # 假设你要上传的文件是./path/to/your/file.txt
    response = uploader.upload_file('./path/to/your/file.txt')
    
    # 打印响应状态码和文本
    print(f"Status Code: {response.status_code}")
    print(f"Response Text: {response.text}")

这个类`CommonUpload`封装了文件上传的基本逻辑,允许用户通过指定文件路径、API端点、额外文件(如果需要同时上传多个文件)和请求头来上传文件。在`upload_file`方法中,我们首先构建了一个包含文件的字典(如果未提供`files`参数,则只包含单个文件),然后使用`requests.post`方法发送POST请求到指定的URL。

请注意,为了简化示例,这里没有进行错误处理(如文件不存在、网络错误等),你可能需要在实际应用中添加这些处理逻辑。此外,根据你的具体需求,你可能还需要调整请求头(如添加认证信息)或处理响应(如解析JSON响应)。