我正在寻找一种方法来使用curl将位于test.mp4
的视频(C:\admin\videos\
)上传到MP4UPLOAD服务器。当我手动提交上传(使用打开文件对话框)时,以下标题会处理上传(由于隐私原因,某些值会发生变化):
#(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使用上面给出的标题进行这样的上传请求(假设它可能)?
编辑1
因此使用chrome,我检索了以下卷曲线。
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
所以我找到了另一种使用-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
我认为这是我做这件事最简单的方法,所以我就把它留在这里。
答案 0 :(得分:0)
使用以下方法解决:
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