0

我正在一个新网站上试用 TesseractOCR。

我安装了新版本的 Laravel (5.2.4),在我的服务器 (Debian Jessie) 上安装了 Tesseract,并为 Tesseract 安装了 PHP 包装器;tesseract-ocr-for-php

我已按照所有设置说明将软件包安装到应用程序上。

在我的routes.php文件中,我有:

Route::get('/test', function () {
$tesseract = new TesseractOCR(asset('images/myimage.jpg'));
echo $tesseract->recognize();
});

图像myimage.jpg存在于文件夹images内称为public文件夹的位置。

当我导航到example.com/test我得到:

TesseractOCR.php 第 235 行中的 ErrorException:file_get_contents(/tmp/75176598.txt):无法打开流:没有这样的文件或目录

根据readme.md您可以通过使用来解决该问题$tesseract->setTempDir('./my-temp-dir');

因此,我尝试将routes.php文件更改为:

Route::get('/test', function () {
$tesseract = new TesseractOCR(asset('images/myimage.jpg'));
$tesseract->setTempDir('/var/www/tesseract/public/images');
echo $tesseract->recognize();
});

但是,这只是使用不同的文件路径给出相同的错误:

TesseractOCR.php 第 235 行中的 ErrorException:file_get_contents(/var/www/tesseract/public/images/1770521095.txt):无法打开流:没有这样的文件或目录

我该如何解决这个错误?

4

1 回答 1

2

我最终发现您不能为 TesseractOCR 提供指向图像的 HTML 链接,它必须是内部文件路径。

作为asset()返回一个 URL,我只是用它替换了public_path()它,它工作得很好。

权限或实际包从来没有任何问题,只是您需要提供文件路径而不是 URL。

于 2016-01-07T02:57:59.250 回答