我的PHP脚本写入一个文件,以便它可以创build一个JPG图像。
fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']); fclose($handle); print $newfile.'.jpg';
我已经把这个脚本放在一个新的服务器上,但是图像永远不会被保存。 它保存的文件夹的权限是755,但它不拥有它。 最后一次,我想我通过更改目录所有者到Apache来解决这个问题,因为这是PHP运行的。 我不能再做同样的事,因为我不是根。
首先,是否有另一个修复? 其次,如果我可以像上次一样更改目录的所有者,是否可以解决问题?
感谢所有的帮助
rwxrwxrwx
) rwxr-xr-x
)甚至更好711( rwx--x--x
) BTW。 你可以减少下面的代码:
fopen($newfile.'.jpg','wb'); fwrite($handle, $GLOBALS['HTTP_RAW_POST_DATA']); fclose($handle); print $newfile.'.jpg';
至:
file_put_contents($newfile.'.jpg', file_get_contents('php://input', FILE_BINARY), FILE_BINARY)
如果你不是主人,那么是的,目录是755是一个问题。
要分解它,755是:
请注意, 只有所有者拥有755的写权限。
如果打开失败,PS fopen应该返回一个错误。
用这个:
>chown dir_name www-data
几个星期前我有类似的问题。 它最终成为服务器中设置的PHP安全模式。
检查出!
将error_reporting(E_ALL)放在脚本的顶部,并检查是否在尝试保存图像时打印出任何警报。