发送 mulipart/form-data 请求 mp4upload Curl
Send mulipart/form-data request for mp4upload Curl
我正在寻找一种使用 curl 将视频(test.mp4
位于 C:\admin\videos\
)上传到 MP4UPLOAD 服务器的方法。当我手动提交上传(使用打开文件对话框)时,以下 header 处理上传(由于隐私原因更改了一些值):
#(2)
#General
Request URL:https://www3.mp4upload.com/cgi-bin/upload.cgi?upload_type=file
Referrer Policy:no-referrer-when-downgrade
#Request Headers
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryUYmnnrteTBA8i9Ps
Origin:https://www.mp4upload.com
Referer:https://www.mp4upload.com/?op=upload
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
#Query String Parameters
upload_type=file
#Request Payload
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="sess_id"
12345abcde
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="utype"
reg
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_descr"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_public"
1
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="link_rcpt"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="link_pass"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="to_folder"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_0"; filename="test.mp4"
Content-Type: video/mp4
------WebKitFormBoundaryUYmnnrteTBA8i9Ps--
那么,我如何使用 curl/php(假设可能)使用上面给出的 headers 发出这样的上传请求?
编辑 1
所以使用 chrome,我检索了以下 curl 行。
curl -k 'https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file' -H 'Referer: https://www.mp4upload.com/?op=upload' -H 'Origin: https://www.mp4upload.com' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykXmBSfC4cYG13IWT' --data-binary $'------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="sess_id"\r\n\r\n12345abcde\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="utype"\r\n\r\nreg\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_descr"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_public"\r\n\r\n1\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="link_rcpt"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="link_pass"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="to_folder"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_0"; filename="test.mp4"\r\nContent-Type: video/mp4\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT--\r\n' --compressed
现在我首先注意到 WebKitFormBoundary
处的随机字符串会在您每次提交新请求时发生变化。但是随机字符串背后有什么意义吗?还是我可以自己创建一个随机字符串?
第二件事是,我似乎无法找到 test.mp4
文件来自目录 C:\admin\videos\
。我应该如何指定我要从该目录上传文件?
编辑 2
所以我找到了另一种方法 post 使用 -F
形成数据。这样我什至可以将视频上传到我自己的帐户(使用 sess_id
)。
curl -X POST -F "sess_id=1234abcde" -F "file_0=@C:\admin\videos\test.mp4;Type=video/mp4" -k https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file
我确定这是最简单的方法,所以我就此打住。
使用以下方法解决:
curl -X POST -F "sess_id=1234abcde" -F "file_0=@C:\admin\videos\test.mp4;Type=video/mp4" -k https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file
我正在寻找一种使用 curl 将视频(test.mp4
位于 C:\admin\videos\
)上传到 MP4UPLOAD 服务器的方法。当我手动提交上传(使用打开文件对话框)时,以下 header 处理上传(由于隐私原因更改了一些值):
#(2)
#General
Request URL:https://www3.mp4upload.com/cgi-bin/upload.cgi?upload_type=file
Referrer Policy:no-referrer-when-downgrade
#Request Headers
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryUYmnnrteTBA8i9Ps
Origin:https://www.mp4upload.com
Referer:https://www.mp4upload.com/?op=upload
User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
#Query String Parameters
upload_type=file
#Request Payload
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="sess_id"
12345abcde
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="utype"
reg
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_descr"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_public"
1
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="link_rcpt"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="link_pass"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="to_folder"
------WebKitFormBoundaryUYmnnrteTBA8i9Ps
Content-Disposition: form-data; name="file_0"; filename="test.mp4"
Content-Type: video/mp4
------WebKitFormBoundaryUYmnnrteTBA8i9Ps--
那么,我如何使用 curl/php(假设可能)使用上面给出的 headers 发出这样的上传请求?
编辑 1
所以使用 chrome,我检索了以下 curl 行。
curl -k 'https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file' -H 'Referer: https://www.mp4upload.com/?op=upload' -H 'Origin: https://www.mp4upload.com' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykXmBSfC4cYG13IWT' --data-binary $'------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="sess_id"\r\n\r\n12345abcde\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="utype"\r\n\r\nreg\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_descr"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_public"\r\n\r\n1\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="link_rcpt"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="link_pass"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="to_folder"\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT\r\nContent-Disposition: form-data; name="file_0"; filename="test.mp4"\r\nContent-Type: video/mp4\r\n\r\n\r\n------WebKitFormBoundarykXmBSfC4cYG13IWT--\r\n' --compressed
现在我首先注意到 WebKitFormBoundary
处的随机字符串会在您每次提交新请求时发生变化。但是随机字符串背后有什么意义吗?还是我可以自己创建一个随机字符串?
第二件事是,我似乎无法找到 test.mp4
文件来自目录 C:\admin\videos\
。我应该如何指定我要从该目录上传文件?
编辑 2
所以我找到了另一种方法 post 使用 -F
形成数据。这样我什至可以将视频上传到我自己的帐户(使用 sess_id
)。
curl -X POST -F "sess_id=1234abcde" -F "file_0=@C:\admin\videos\test.mp4;Type=video/mp4" -k https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file
我确定这是最简单的方法,所以我就此打住。
使用以下方法解决:
curl -X POST -F "sess_id=1234abcde" -F "file_0=@C:\admin\videos\test.mp4;Type=video/mp4" -k https://www13.mp4upload.com/cgi-bin/upload.cgi?upload_type=file