我使用python请求将jpeg图像文件上载到多部分表单。在
如果我检查通过通常使用浏览器上传图像的请求,我会看到:
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="uploadphotos"
true
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="deletephoto"
0
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_0"; filename="1 KIN
GRD.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path0"
C:\fakepath\1 KIN GRD.jpg
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="e$phMain$UploadButton0"
Upload photo
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_1"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path1"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_2"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path2"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_3"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path3"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_4"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path4"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_5"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path5"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_6"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path6"
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_input_7"; filename=""
Content-Type: application/octet-stream
------WebKitFormBoundaryKGkGxMtaz943aFXQ
Content-Disposition: form-data; name="upload_path7"
------WebKitFormBoundaryKGkGxMtaz943aFXQ--
这是我用来上传表单中第一张图片的python代码(最多可以上传8张图片),但是首先我应该能够上传至少第一张图片:
^{pr2}$但我无法上传图片。在
编辑:这不是同一个问题。我的问题与这一个具体案例有关:在这种具体情况下,什么是正确的要求?我是否必须发送包含所有字段的多部分请求(因为我将发布所有图像)?在
编辑2:我找到了解决办法:
multipart_form_data = {
'uploadphotos': (None, 'true', None),
'deletephoto': (None, '0', None),
'upload_input_0': ("test2.jpg", open('test2.jpg', 'rb'),'image/jpeg'),
'upload_path0': (None, 'C:\fakepath\test2.jpg', None),
'e$phMain$UploadButton0': (None, 'Upload photo', None),
'upload_input_1': ('', ''),
'upload_path1': (None, '', None),
'upload_input_2': ('', ''),
'upload_path2': (None, '', None),
'upload_input_3': ('', ''),
'upload_path3': (None, '', None),
'upload_input4': ('', ''),
'upload_path4': (None, '', None),
'upload_input_5': ('', ''),
'upload_path5': (None, '', None),
'upload_input_6': ('', ''),
'upload_path6': (None, '', None),
'upload_input_7': ('', ''),
'upload_path7': (None, '', None),
}
r = s.post(upload_image_url, headers = headers_s, files=multipart_form_data)
这是一个完美的解决方案!在
目前没有回答
相关问题 更多 >
编程相关推荐