PHP stream_copy_to_stream在本地服务器上无法正常工作

时间:2012-08-23 15:18:56

标签: 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()){            
        return false;
    }

    $target = fopen($path, "w");        
    fseek($temp, 0, SEEK_SET);
    stream_copy_to_stream($temp, $target);
    fclose($target);
    chmod($path, 0644);

问题是$ realSize在我的本地服务器上是空的,而它在我的实时服务器上有一个值。所以在本地服务器上它会在大小检查时中断。我怀疑这是一个服务器配置问题,但我不知道该找什么。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我找到了罪魁祸首。 tmpfile()无法创建临时文件,因为临时文件夹上的权限不允许写入。使用sys_get_temp_dir()找到临时文件夹的位置使这个目录可写,所有都是GO!