Python 아 날로 그 브 라 우 저 에서 파일 스 크 립 트 를 업로드 하 는 방법(Multipart/form-data 형식)
multipart/form-data 의 기본 방법 은 post 입 니 다.즉,post 방법 으로 조합 하여 이 루어 진 것 입 니 다.post 방법 과 다른 점:요청 머리,요청 체 입 니 다.
multipart/form-data 의 요청 헤드 는 특수 한 헤더 정 보 를 포함 해 야 합 니 다.Content-type 이 고 그 값 도 multipart/form-data 로 규정 해 야 합 니 다.또한 요청 체 의 여러 post 내용 을 분할 하 는 데 사용 할 내용 분할 부 호 를 규정 해 야 합 니 다.예 를 들 어 파일 내용 과 텍스트 내용 을 자 연 스 럽 게 분리 해 야 합 니 다.그렇지 않 으 면 수신 자가 이 파일 을 정상적으로 해석 하고 복원 할 수 없습니다.
구체 적 인 헤드 정 보 는 다음 과 같다.
Content-Type: multipart/form-data; boundary=${bound}
실례:
import os, random, sys, requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
url = 'http://127.0.0.1/sendmsg'
argvstr = sys.argv[1:]
argv_dict = {}
for argv in argvstr :
argv = str(argv).replace("\r
" , "")
DICT = eval(argv)
argv_dict.update(DICT)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0',
'Referer': url
}
multipart_encoder = MultipartEncoder(
fields={
'username': argv_dict['username'],
'pwd': argv_dict['pwd'],
'type': 'txt',
'friendfield': argv_dict['friendfield'],
'friend': argv_dict['friend'],
'content': argv_dict['content'],
'file': (os.path.basename(argv_dict['file']) , open(argv_dict['file'], 'rb'), 'application/octet-stream')
#file
},
boundary='-----------------------------' + str(random.randint(1e28, 1e29 - 1))
)
headers['Content-Type'] = multipart_encoder.content_type
# , Content-Type: multipart/form-data; boundary=${bound}
r = requests.post(url, data=multipart_encoder, headers=headers)
print(r.text)
# , cookies ,
# /usr/local/python36/bin/python3 /opt/lykchat/test_upload.py "{'username':'lykchat','pwd':'123456','type':'img','friendfield':'1','friend':'xxxx','content':' ','file':'/root/b.jpg'}"
# curl -F "file=@/root/a" 'http://127.0.0.1/sendmsg?username=lykchat&pwd=123456&type=img&friendfield=1&friend=xxxx&content= '
이 파 이 썬 아 날로 그 브 라 우 저 에서 파일 스 크 립 트 를 업로드 하 는 방법(Multipart/form-data 형식)은 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.