簡體   English   中英

mikehaertl \\ pdftk \\ Pdf空

[英]mikehaertl\pdftk\Pdf Null

我正在開發Laravel應用程序,並嘗試使用mikehaertl \\ pdftk \\ Pdf從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)    

我該如何解決這個問題?

fopen (本質上)返回指向文件的指針,而不是文件內容的指針。 這意味着當您將$content放入文件中時,它並沒有達到您的預期目的。

雖然您可以用file_get_contents代替fopen ,但我建議您只替換以下幾行...

$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);

從getDataFields()返回false作為返回值表示執行命令時某些操作失敗。 需要檢查的幾件事:

  1. 是否安裝了pdftk
  2. 我必須在Pdf類構造函數的選項中指定pdftk二進制文件所在的位置。

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

    我在shell commmand文檔中發現了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM