1. 程式人生 > >python介面自動化上傳圖片方法

python介面自動化上傳圖片方法

上傳圖片介面:

# 檔案上傳:content-Type:  multipart/form-data型別
import requests

class SendFile():
    def __init__(self, s):
        self.s = s

    def sendImg(self, jpgpath, jpgname='1.jpg', jpgtype='image/jpeg'):

        # 登入並更新cookies
        f = open('1.jpg', 'rb')  # 絕對路徑
        url2 = ''
        body = {
            'localurl': (None, jpgname),
            'imgFile': ('1.jpg', open(jpgpath, 'rb'), jpgtype)
            # 1、絕對路徑  2、open('1.jpg', 'rb')  3、content-type的值
            }
        # 上傳圖片的時候,不data和json,用files
        r = self.s.post(url2, files=body)    # 1、呼叫全域性的s,用self.s   2、files
        print(r.text)
        # 上傳到伺服器,每傳一次地址都不一樣

        # 解決拋異常
        try:
            jpg_url = r.json()['url']   # (相對路徑)
            print(jpg_url)
            return jpg_url

        except Exception as msg:    # 返回報錯資訊
            print('圖片上傳失敗,原因:%s'%msg)   # 列印報錯資訊
        #    raise   # 主動拋原始異常
        #    raise  ··· # 丟擲異常內容為:“···”
            return ''

if __name__=='__main__':
    s = requests.session()
    from test.test_009_003_zentaologin import LoginZentao
    # 調登入方法
    login = LoginZentao(s)      # 例項化類LoginZentao為物件
    login.login()
    # 上傳檔案
    send = SendFile(s)      # 把類sendfile()例項化為物件
    send.sendImg()          # 呼叫sendfile()裡面的sendImg方法