我正在尝试使用 Jquery 的 PUT 请求将 CHUNKS 中的文件上传到 PHP 服务器。我已经创建了可以上传块文件的代码。但是当我尝试使用“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);
?>
在这里,当我一个一个地发送每个块并等待代码将该块写入文件时,我能够成功地以块的形式上传文件。
但是当我进行并发上传时(不要等待第一个块写入文件)..“php://input”中的数据似乎被下一个请求覆盖。
我已经检查了javascript。所以问题出在 php 结尾“我应该如何阅读 CHUNKS?”。
我已经浏览了以下链接和其他几个链接: http: //php.net/manual/en/features.file-upload.put-method.php
有人可以帮助我了解 php://input 在同时接收多个请求时如何工作.. 数据是否被覆盖或数据在 STDIN 中被排队?