PHP流\u复制\u到\u流在本地服务器上工作不正常
我正在使用Valums文件上传程序使用XHR上传文件。我使用的脚本在我的实时服务器上运行良好,而在本地服务器上失败。有关守则如下:PHP流\u复制\u到\u流在本地服务器上工作不正常,php,xmlhttprequest,valums-file-uploader,Php,Xmlhttprequest,Valums File Uploader,我正在使用Valums文件上传程序使用XHR上传文件。我使用的脚本在我的实时服务器上运行良好,而在本地服务器上失败。有关守则如下: $input = fopen("php://input", "r"); $temp = tmpfile(); $realSize = stream_copy_to_stream($input, $temp); fclose($input); if ($realSize != $this->getSize()){
$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);
chmod($path, 0644);
问题是$realSize在我的本地服务器上是空的,而在我的实时服务器上它确实有一个值。因此,在本地服务器上,它在大小检查时中断。我怀疑这是一个服务器配置问题,但我不知道该查找什么。有人能给我指出正确的方向吗?我找到了罪犯。tmpfile()无法创建临时文件,因为临时文件夹上的权限不允许写入。使用
sys\u get\u temp\u dir()
找到临时文件夹的位置,使此目录可写,所有内容都重新启动 您确定$input
和$temp
都是有效的资源吗?我不太熟悉stream\u copy\u to\u stream
,但您的代码看起来与中的示例完全不同。$temp
不是必须是fopen()
的结果吗?(当然,除非这是tmpfile()
所做的。)嗨,马特,这是来自Valums文件上传程序()的一段代码。但您质疑资源$input和$temp的有效性是正确的$temp似乎是空的,所以我将从这一点看一下。