Я хочу извлечь текст из docx и doc файла. Я использую этот класс в ответе.
Все работает отлично, когда я использую их в собственном php и docx файл в том же каталоге файлов php. Оно извлекает довольно хорошо. Это не тот случай, когда я загружаю их через <input type="file">
. Вы можете видеть в ссылке, что этот класс принимает только docx,doc,pptx and xlsx
. Я знаю, когда вы загружаете файл в php, он переименовывается и перемещается в temp, чтобы избежать столкновения имен и перезаписи. Поэтому я пришел с чем-то вроде получения файла tmp и удаления его расширения и добавления docx или doc к нему.
Вот мой код
$file = $request->file('resume');
echo $file."<br>";
$withoutExt = preg_replace('/.[^.s]{3,4}$/', '', $file);
$echo $withoutExt."<br>";
$original_file = $withoutExt.".docx"."<br>";
$echo $original_file."<br>";
$doc_file = new DocxConversion($original_file);
$echo $docText= $doc_file->convertToText();
Выше код дает мне выход, как я ожидал до преобразования .tmp
в.docx
, но, наконец, говоритFile Not exists
, что вот выход
C:xampptmpphpCB7E.tmp
C:xampptmpphpCB7E
C:xampptmpphpCB7E.docx
File Not exists
Я также попытался поместить файл docx в каталог контроллеров и попытался выполнить так
public function index1(){
echo "hello";
$docObj = new DocxConversion("hello.docx");
var_dump($docText= $docObj->convertToText());
}
Вышеуказанный подход также говорит, что файл не существует. Я делаю что-то не так? Он отлично работает с одним и тем же файлом в собственном коде, где мои php-файлы и файлы docx находятся в одном каталоге, но не тогда, когда я использую его в своем контроллере.
Предполагая, что ваш
$file
является UploadedFile вы можете использоватьgetRealPath
метод, чтобы получить путь к имени файла,