我正在尝试从上传的PDF文件中获取值。因此,当该文件成功上传时,我想从此PDF文件中获得一些数据,ID,paskureorderno和金额。
到目前为止,我已经接近了Spatie/pdf-to-Text,并且能够上传和打开PDF文件,但我无法做到,我不知道如何获取所需的数据并将其显示在我的刀片上查看。
$name=$file->getClientOriginalName();
$file->move(public_path().'/pdftotext/', $name);
$data[] = $name;
$attachments = public_path().'/pdftotext/'. $name;
$path = public_path('/pdftotext/'. $name);
$text = Pdf::getText ('Invoice 56569.pdf', $path);
上面的代码将上传PDF文件并将其存储在public/pdftotext文件夹中,并且在上传后将打开上传的pdf文件,但不会获取任何值。
请建议我如何解决此问题。感谢您的时间。
而不是:
$name=$file->getClientOriginalName();
$file->move(public_path().'/pdftotext/', $name);
$data[] = $name;
$attachments = public_path().'/pdftotext/'. $name;
$path = public_path('/pdftotext/'. $name);
$text = Pdf::getText ('Invoice 56569.pdf', $path);
这样做更有意义:
$name = $file->getClientOriginalName();
$path = public_path('/pdftotext/');
$file->move($path, $name);
$text = Pdf::getText ($name, $path);
// -- these have no bearing on this code so do them a bit later (here I will just ignore them)
//$data[] = $name;
//$attachments = $path.$name;
虽然这可能无法"解决"您的问题,但要在评论中发表很多问题,它将使其变得更加干净,越来越小,并且阅读更愉快。
我不是一个非常有条理的人,但是在代码中缺乏组织会导致您更多的问题。
我上面发布的代码中最重要的事情是对此的更改:
$path = public_path('/pdftotext/');
而不是最初拥有的(带有文件名)
$path = public_path('/pdftotext/'. $name);
,或者不是,这是"问题"取决于它们如何实现Pdf::getText
,他们可以在第二个参数上使用dirname()
,然后可以返回文件夹名称{minus} - fileName。但是,如果他们检查 is_dir()
会失败。
在四处移动之后,我如何使用这种使用。
$path = public_path('/pdftotext/'.$name);
$file->move($path, $name); ///file->move(pdftotext/book.pdf, book.pdf) etc...
对我来说似乎并不正确。此外,这将使您呼吁Pdf::getText
成为此(例如)
echo Pdf::getText('book.pdf', '/custom/path/to/pdftotext/book.pdf');
当您可能想要的是:
echo Pdf::getText('book.pdf', '/custom/path/to/pdftotext/');
这就是为什么我在上面说的这取决于它们如何实现Pdf::getText
,因为有一些方法可以说明路径是DIR还是文件。这样他们就可以在这种方法内部解决这个问题。我不知道他们是否这样做(也许我会看一位来源并看到)。我看上去{简短},看来他们完全检查了。
有意义。这就是为什么我说要组织它的原因,因为事情变得越来越清楚,阅读代码就越容易。