PHP-写入文件-对一个脚本的权限被拒绝,但对同一目录中的另一个脚本的权限被拒绝
我的一个PHP脚本将数据写入文件。它执行起来没有问题。但是,我的测试代码以相同的方式调用相同的方法,并且(为了试图解决此问题)位于相同的目录中,它报告了一个:PHP-写入文件-对一个脚本的权限被拒绝,但对同一目录中的另一个脚本的权限被拒绝,php,permissions,fopen,Php,Permissions,Fopen,我的一个PHP脚本将数据写入文件。它执行起来没有问题。但是,我的测试代码以相同的方式调用相同的方法,并且(为了试图解决此问题)位于相同的目录中,它报告了一个: failed to open stream: Permission denied 错误 我正确执行的脚本很简单: try { $printer = new PDFPrinter(); $FDFData = $printer->assembleFDFData(5); $fdf_file = $printer-
failed to open stream: Permission denied
错误
我正确执行的脚本很简单:
try {
$printer = new PDFPrinter();
$FDFData = $printer->assembleFDFData(5);
$fdf_file = $printer->writeFDFFile($FDFData);
$printer->downloadForm($fdf_file);
}catch(Exception $e) {
echo $e->getMessage();
}
我的测试代码是:
function setUp() {
$this->printer = new PDFPrinter();
$this->FDFData = $this->printer->assembleFDFData(5);
}
function testWrite() {
try {
$this->printer->writeFDFFile($this->FDFData);
$this-assertTrue(true);
} catch(Exception $e) {
$this->assertTrue(false);
}
}
我知道testWrite测试代码很糟糕,但我只想让它先停止抛出异常
脚本在执行writefdfile($this->FDFData)时抛出异常代码>方法,因为它试图打开要写入的文件。这是失败的代码:
$fp=fopen($fdf_file,'w')
我不明白在执行相同的代码时,同一目录中具有相同权限的两个文件如何能够以不同的方式工作
我可能做错了什么
非常感谢如何运行标准和测试代码?也许您通过apache(在浏览器中打开)运行标准代码,但直接通过php(从IDE运行)测试代码。也许apache有权限,但php没有。也许工作目录是不同的($fdf_文件包含绝对路径?)
还要注意,“未能打开流:权限被拒绝”是警告(不是致命错误),当您运行标准代码时,此警告不会停止执行。但是PHPUnit会将警告转换为异常,当您在PHPUnit下运行代码时,此警告将停止执行。与上面的代码有什么关系。抱歉,如果不清楚的话,我已经编辑了我的帖子,以显示fopen代码是writePDFFile()方法的一部分。