php - pdf2text转换后无法将字符串写入数据库
问题描述
我正在使用 spatie 的 pdf2text,实际上它工作正常。问题:当我尝试从转换后的 pdf 写入文本(pdf2text 函数的返回值)时,它总是给我一个错误Illuminate\Database\QueryException。分析问题后发现它是由插入查询引起的。我不能直接将转换后的字符串插入数据库。当我dd();
输出并将其手动复制到变量并将其插入数据库时,它工作正常。pdftotext 函数的返回类型也是字符串。我试图再次将其转换为字符串,但正如预期的那样,这是一个多余的步骤。当我尝试将文本传递给视图时,它也没有给我任何东西。仅不输出屏幕dd();
和 `print_r();' 给我一个输出。
好吧,这就是我的代码:
控制器:
public function TextFromPdf(Request $pdfFile)
{
if (isset($pdfFile)) {
$file = $pdfFile->file('pdfFile');
$fileName = 'PDF File '.time() . '-' . $file->getClientOriginalName();
$file->storeAs('',$fileName);
$filePath = Storage::disk('local')->path($fileName);
$text = (new Pdf('C:\CV-Test\xpdf-tools-win-4.03\bin64\pdftotext.exe'))
->setPdf($filePath)->text();
DB::table('fulltexts')->insert([
'text' => $text
]);
return view('CV_test.pdf', compact('text'));
}
截图 dd($text);
我究竟做错了什么?
解决方案
好的,我发现了它是什么,花了一些时间。字符串引号前的字符b表示它是二进制字符串。当我尝试将其插入数据库时,它无法正常工作,因为我的数据库无法管理二进制字符串。我只需要将其转换为utf8 by utf8_encode($binary_string)
,然后我就可以将其写入数据库而没有任何问题
推荐阅读
- visual-studio-2017 - Visual Studio 安装程序 15.8.28010.2036 停止在 97.55%
- android - 与文档相反,Android 位置更新过于频繁
- javascript - 遍历javascript对象问题
- php - 在 Laravel::Eloquent 表中,如何将模型设置为从视图中读取,但保存到表中?
- ruby-on-rails - Rails 服务器启动错误
- linux - 休眠过程,直到在 Go 中完成
- .net - 引导表设置标记为已检查的特定行的复选框
- android - 重用 ViewPropertyAnimator 对象的问题
- android - 按需组合嵌套 Observable 的最新值
- postgresql - POSTGRESQL:在每个 GROUP BY 中使用 EXCEPT