mikehaertl \ pdftk \ Pdf Null - PullRequest
       5

mikehaertl \ pdftk \ Pdf Null

0 голосов
/ 23 мая 2018

Я занимаюсь разработкой приложения Laravel и пытаюсь извлечь поля из файла PDF, используя mikehaertl \ pdftk \ Pdf, но оно всегда возвращает NULL.

 public function postPdF(Request $request ){
    $file = $request->file('test');
    $content = fopen($file->getRealPath(),'r');
    $name = $file->getClientOriginalName();
    $extension = \File::extension($name);
    $newName = time().".".$extension;
    Storage::disk("local")->put($newName,$content);
    $pathF =  storage_path('app')."\\".$newName; 

    $pdf = new Pdf($pathF);
    $data = $pdf->getDataFields();

}    

Если я делаю

var_dump($pdf)  

возвращается

string(0) ""    

Если я сделаю

var_dump($data)   

, возвращается

bool(false)    

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Получение false в качестве возвращаемого значения от getDataFields () является признаком того, что что-то не удалось при выполнении команды.Несколько вещей для проверки:

  1. Установлено ли pdftk ?
  2. Мне пришлось указать в опциях конструктора класса Pdf, где двоичный файл pdftkбыл найден.

    $pdf = new Pdf(
               $pathToPdf, 
               ['command' => $pathToPdfTKBinary]
    );
    

    Я сталкивался с этим в документации для команды оболочки .

0 голосов
/ 23 мая 2018

fopen возвращает (по существу) указатель на файл, а не содержимое файла.Это означает, что когда вы помещаете $content в файл, он не выполняет то, что вам нужно.

Хотя вы можете просто заменить fopen на file_get_contents, я бы посоветовал просто заменить следующеелинии ...

$file = $request->file('test');
$content = fopen($file->getRealPath(),'r');
$name = $file->getClientOriginalName();
$extension = \File::extension($name);
$newName = time().".".$extension;
Storage::disk("local")->put($newName,$content);

... с чем-то вроде ...

$destPath = storage_path('app') . '/' . time() . '.' . $request->test->extension();

Storage::disk('local')
  ->copy($request->test->path(), $destPath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...