Jqueryを使用してPHPサーバーにPUTリクエストを使用してCHUNKSにファイルをアップロードしようとしています。チャンク ファイルをアップロードできるコードを作成しました。しかし、「php://input」を使用して読み込もうとすると、何か奇妙なことが起こっています
<?php
$headerArray=getallheaders();
$filename="d/".$headerArray["filename"];
$length=$headerArray["Content-Length"];
/* PUT data comes in on the stdin stream */
echo "filename".$filename;
echo "Chunksize Uploaded:".$length;
$putdata = fopen("php://input", "r");
/* Open a file for writing */
$fp = fopen($filename, "a");
while ($data = fread($putdata, $length))
fwrite($fp, $data);
/* Close the streams */
fclose($fp);
fclose($putdata);
echo "FileSize After write : ".filesize($filename);
?>
ここでは、各チャンクを 1 つずつ送信し、コードがそのチャンクをファイルに書き込むのを待っているときに、ファイルをチャンクで正常にアップロードできます。
しかし、同時アップロードを行うと(最初のチャンクがファイルに書き込まれるのを待たないでください)..「php://input」のデータは次のリクエストによって上書きされたようです。
私はjavascriptをダブルチェックしました。したがって、問題はphpの最後にある「CHUNKSをどのように読むべきですか?」です。
次のリンクと他のいくつかのリンクを調べました: http://php.net/manual/en/features.file-upload.put-method.php
複数のリクエストを同時に受け取ったときに php://input がどのように機能するかを理解するのを手伝ってもらえますか..データが上書きされるか、データがSTDINでキューに入れられますか?