Codeginiter:chmod():无效的参数错误

时间:2017-01-03 05:21:05

标签: php codeigniter pdf-generation pdftk

我正在使用pdftk库来修改pdf文件。但我收到chmod(): Invalid argument错误。

以下是我的代码:

  include('fillpdf/createXFDF.php');
    $fdf_file = 'fillpdf/acord.fdf';
    $acord = array();
    $acord['******'] = 'a';
    $acord['******'] = 'a';
    $pdf_file_url  = 'http://localhost/******/fillpdf/Cancellation.pdf';
    $fdf = createXFDF( $pdf_file_url, $acord );
    // print_r($fdf); die;
           if ($fp = fopen($fdf_file, 'w')) { 
                chmod($fdf, 777);
                fwrite($fp, $fdf, strlen($fdf));
                $CREATED = TRUE;
            } else {
                echo 'Unable to create file: ' . $fdf_file . '<br><br>';
                $CREATED = FALSE;
            } 
            // var_dump($CREATED); die;
    fclose($fp);
    $command = '"C:\\Program Files (x86)\\PDFtk\\bin\\pdftk.exe" C:\\xampp\\htdocs\\*******\\fillpdf\\Cancellation.pdf fill_form acord.fdf output C:\\xampp\\htdocs\\*******\\fillpdf\\Cancellation_new.pdf';
    exec($command);

我已经为文件夹和文件提供了所有必要的权限。但不知道出了什么问题?

提前致谢!!!

2 个答案:

答案 0 :(得分:1)

为什么您需要将chmod($fdf,0777);提交给$fdf。它甚至不是文件。根据您的代码,$fdf = createXFDF( $pdf_file_url, $acord );正在调用函数,而且它不是文件。所以只需评论chmod($fdf,0777);行并检查您的代码是否正常工作?

希望它有所帮助!!!

答案 1 :(得分:0)

尝试这样......对于chmod()函数,第一个数字始终为零。

chmod(file,mode);

mode参数由四个数字组成:

1.第一个数字始终为零

2.第二个数字指定所有者的权限

3.第三个数字指定所有者用户组的权限

4.第四个数字为其他人指定权限

include('fillpdf/createXFDF.php');
    $fdf_file = 'fillpdf/acord.fdf';
    $acord = array();
    $acord['******'] = 'a';
    $acord['******'] = 'a';
    $pdf_file_url  = 'http://localhost/******/fillpdf/Cancellation.pdf';
    $fdf = createXFDF( $pdf_file_url, $acord );
    // print_r($fdf); die;
           if ($fp = fopen($fdf_file, 'w')) { 
                chmod($fdf,0777);
                fwrite($fp, $fdf, strlen($fdf));
                $CREATED = TRUE;
            } else {
                echo 'Unable to create file: ' . $fdf_file . '<br><br>';
                $CREATED = FALSE;
            } 
            // var_dump($CREATED); die;
    fclose($fp);
    $command = '"C:\\Program Files (x86)\\PDFtk\\bin\\pdftk.exe" C:\\xampp\\htdocs\\*******\\fillpdf\\Cancellation.pdf fill_form acord.fdf output C:\\xampp\\htdocs\\*******\\fillpdf\\Cancellation_new.pdf';
    exec($command);