Вместо этого:
$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()
для второго аргумента, что будет хорошо, так как это вернет имя папки {минус} - имя файла.Но если они проверят 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 или FILE.Таким образом, они могли бы обойти это внутри этого метода.Я понятия не имею, если они делают (возможно, я посмотрю источник и посмотрю).Я посмотрел {кратко}, и не похоже, что они вообще это проверяют.
Имеет смысл.Вот почему я сказал организовать это так, чтобы чем яснее становилось, тем легче читать код.