我正在尝试在新网站上使用TesseractOCR。
我已经安装了新版本的Laravel(5.2.4),在我的服务器上安装了Tesseract(Debian Jessie),并为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): 无法打开流:没有这样的文件或目录
如何解决此错误?
答案 0 :(得分:1)
我最终发现你不能为TesseractOCR提供一个指向图像的HTML链接,它需要是一个内部文件路径。
当asset()
返回一个网址时,我只是将其替换为public_path()
,并且效果很好。
权限或实际包没有任何问题,只需要提供文件路径而不是URL。