0

当与调用 gpg 加密文件的 exec() 命令结合使用时,我遇到了与 session_start() 命令的令人费解的冲突。

$output =  exec("gpg --batch --passphrase asdf --symmetric --output ../files/test/uploads/smalltext.txt.gpg ../files/test/uploads/smalltext.txt 2>&1" ,$test);
print_r($test);     
exit;

上面的代码将起作用

session_start();        
$output =  exec("gpg --batch --passphrase asdf --symmetric --output ../files/test/uploads/smalltext.txt.gpg ../files/test/uploads/smalltext.txt 2>&1" ,$test);
print_r($test);     
exit;           

此代码不起作用,它会声明

gpg:无法打开 ../files/test/uploads/smalltext.txt

gpg:../files/test/uploads/smalltext.txt 的对称加密失败:没有这样的文件或目录

目前我唯一的解决方法是调用 session_destroy(); 并设置 $_SESSION = array(); 因此重置它,调用 exec,然后重新设置我的所有会话信息。

4

0 回答 0