PHP Curl可以';复制XHR上传

PHP Curl可以';复制XHR上传,php,ajax,curl,upload,xmlhttprequest,Php,Ajax,Curl,Upload,Xmlhttprequest,我想上传一个视频文件到一个网站。默认情况下,在浏览器中 我可以上传视频,但当我试图通过curl在php中这样做时,出现了一些问题,因为我没有收到响应的视频代码(vcode) 这是XHR请求,这种方式有效,原始上传请求: var formData = new FormData(); formData.append("sid", "MYSID"); formData.append("cmd", "uploadVideoFile"); formData.append("uploadfi

我想上传一个视频文件到一个网站。默认情况下,在浏览器中 我可以上传视频,但当我试图通过curl在php中这样做时,出现了一些问题,因为我没有收到响应的视频代码(vcode)

这是XHR请求,这种方式有效,原始上传请求:

  var formData = new FormData();
  formData.append("sid", "MYSID");
  formData.append("cmd", "uploadVideoFile");
  formData.append("uploadfile", uFile, uFile.name);

  var oXHR = new XMLHttpRequest();
  oXHR.open("POST", upload_url);
  oXHR.send(formData);
请求标头:

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Content-Length  123456
Content-Type multipart/form-data; boundary=---------------------------26463276212588
Host    upload.somehost.com
Origin  http://somehost.com
Referer http://somehost.com/upload
User-Agent  Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
以下是帖子:

    -----------------------------26463276212588
Content-Disposition: form-data; name="sid"

MYSID
-----------------------------26463276212588
Content-Disposition: form-data; name="cmd"

uploadVideoFile
-----------------------------26463276212588
Content-Disposition: form-data; name="uploadfile"; filename="test.mp4"
Content-Type: video/mp4
post后的响应(成功时):

这个代码是:
dBG5XL2VdibeKAG4
,如果我通过curl上传视频,我就不会收到这个代码

CURL PHP代码:

$file = "/var/www/html/dl/big.mp4";
$data = array('sid' => 'MYSID', 'cmd' => 'uploadVideoFiles', 'uploadfile' => '@' . realpath($file));
$lenght = sizeof($data);

$request = curl_init('http://uploadurl/uploadpage');
curl_setopt($request, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($request, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($request, CURLOPT_POSTFIELDS, $data);
curl_setopt($request, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type:multipart/form-data',                                                                                
    'Content-Length: ' . strlen($lenght))                                                                       
);                       
echo curl_exec($request);
curl_close($request);
未收到vcode时的响应:

{"response":{"code":0,"vcode":""}} 

因此,我认为CURL代码在某些地方不正确,或者我发送请求的方式与XHR发送请求的方式不同。

您可以随时检查PHP中的请求/响应头。我检查过了,上面写着[size_upload]=>98710字节0.09 MB,但我的文件是5511326字节5.5 MB。你的脚本超时限制短吗?@MehulMohan这是我的限制,在另一个上传文件上使用这个限制没有任何问题<代码>ini设置(“最大执行时间”,1800)
ini\u集('display\u errors',1)
ini\u集('display\u startup\u errors',1)
错误报告(E\u ALL)可能重复的
{"response":{"code":0,"vcode":""}}