我正在使用Phantomjs并且效果不佳。我正在使用此命令从我的网页生成PDF:
/var/www/html/hor/js/phantomjs /var/www/html/hor/js/_generate.js 1234
效果很好(它没有找到UI-kit js文件,我还没有考虑过这个问题)而且我的PDF文件在我的PDF目录中。但是我的PHP文件没什么。
Command或PHP都使用print_r()提供以下错误代码:
TypeError: 'undefined' is not a valid argument for 'in' (evaluating
'"default"in t')
http://localhost/js/uikit.min.js:3
http://localhost/js/uikit.min.js:3
http://localhost/js/uikit.min.js:3
(所以在这两种情况下脚本都已启动)
我的PHP脚本:
<?php
$token = $_GET['token'];
$simul_mail = $_GET['simulmail'];
$cmd = ' /var/www/html/hor/js/phantomjs';
$cmd.= ' /var/www/html/hor/js/_generate.js';
$cmd.= ' '.$token;
if(isset($_GET['simulmail'])&&isset($_GET['token'])){
exec($cmd, $output);
}
print_r( $output );
?>
我的_generate.js文件由phantomJS执行:
fs = require('fs');
system = require('system');
token = system.args[1];
if(token!=null && token!=""){
fs.changeWorkingDirectory('/var/www/html/hor/pdf/');
var page = new WebPage();
var pagename = "PDF_"+token+".pdf";
page.open('http://localhost/_template-mail.php?v='+token, function (status) {
page.render(pagename);
phantom.exit();
});
}
else{
phantom.exit();
}
我该怎么办?
答案 0 :(得分:1)
对于那些有同样问题的人来说,这是一个关于权利的问题。
Apache没有权限在我的PDF文件夹中写入。 具有exec()的PhantomJS使用正在使用Apache权限的PHP权限。
如果Apache是该文件夹的所有者,则效果很好!
--> sudo chown <your username>:<your usergroup> -R <path to>/folder
sudo chown apache -R /var/www/html/hor/pdf