Php 如何在不使用Laravel中的.tmp文件的情况下使用原始上载文件
我想从docx和doc文件中提取文本。我用这个来回答这个问题 当我在php文件的同一目录下的本机php和docx文件中使用它们时,一切都很好。它提取得很好。当我通过Php 如何在不使用Laravel中的.tmp文件的情况下使用原始上载文件,php,laravel,Php,Laravel,我想从docx和doc文件中提取文本。我用这个来回答这个问题 当我在php文件的同一目录下的本机php和docx文件中使用它们时,一切都很好。它提取得很好。当我通过上传它们时,情况并非如此。您可以在链接中看到,该类只接受docx、doc、pptx和xlsx。我知道,当你们用php上传文件时,它会重命名并移动到temp,以避免名称冲突和覆盖。所以我带来了一些东西,比如获取tmp文件,删除其扩展名,然后向其中添加docx或doc。 这是我的密码 $file = $request->file('
上传它们时,情况并非如此。您可以在链接中看到,该类只接受docx、doc、pptx和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();
我还尝试将docx文件放在controllers目录中,并尝试这样执行
public function index1(){
echo "hello";
$docObj = new DocxConversion("hello.docx");
var_dump($docText= $docObj->convertToText());
}
上述方法还表示文件不存在。我做错什么了吗?它与本机代码中的同一文件完美结合,其中我的php文件和docx文件位于同一目录中,但当我在控制器中使用它时,它就不起作用了。假设您的
$file
是一个上载文件,您可以使用getRealPath
方法获取文件名的路径
$file = $request->file('resume');
$doc_file = new DocxConversion($file->getRealPath());
echo $doc_file->convertToText();
但它仍然说文件不存在。
$file = $request->file('resume');
$doc_file = new DocxConversion($file->getRealPath());
echo $doc_file->convertToText();