Python 아 날로 그 브 라 우 저 에서 파일 스 크 립 트 를 업로드 하 는 방법(Multipart/form-data 형식)

http 프로 토 콜 자체 의 원본 방법 은 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 형식)은 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.많은 응원 부탁드립니다.

좋은 웹페이지 즐겨찾기