是我要修改的代码
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
if ($realSize != $this->getSize()){
return false;
}
$target = fopen($path, "w");
fseek($temp, 0, SEEK_SET);
stream_copy_to_stream($temp, $target);
fclose($target);
我想将内容保存到内存中并将其传输到其他服务器而不将其保存在apache服务器上。
当我尝试输出内容时,我只看到资源ID#5。任何建议,评论都非常感激。感谢
答案 0 :(得分:2)
您拥有的代码会打开文件句柄,这些句柄本身不是内容。要将内容放入变量,只需像读取任何其他文件一样阅读:
$put = file_get_contents('php://input');
答案 1 :(得分:2)
获取流的内容:
rewind($temp); // rewind the stream to the beginning
$contents = stream_get_contents($temp);
var_dump($contents);
或者,使用file_get_contents
作为@deceze提及。
更新
我注意到你也在磁盘上打开临时文件。您可能需要考虑简化代码:
$put = stream_get_contents(STDIN); // STDIN is an open handle to php://input
if ($put) {
$target = fopen('/storage/put.txt', "w");
fwrite($target, $put);
fclose($target);
}