当前位置: 首页 > news >正文

FastAdmin 中生成插件

在 FastAdmin 中生成一个 OCR 发票识别插件,可以按照以下步骤进行开发。这里假设你已经熟悉 FastAdmin 插件开发的基本流程,并会使用 Composer 和 PHP 扩展。


1. 创建插件骨架

使用 FastAdmin 命令行工具生成插件基础结构:

php think addon -a ocr -c create

这会生成一个插件目录 /addons/ocr/,包含以下关键文件:

text

/addons/ocr/
├── controller/
│   └── Invoice.php  # 发票识别控制器
├── model/
│   └── Invoice.php  # 数据模型(可选)
├── view/
│   └── index/
│       └── index.html  # 前端页面
├── config.php       # 插件配置
├── info.ini        # 插件信息(你提供的元数据)
└── OCR.php         # 插件主类

2. 配置插件信息

编辑 /addons/ocr/info.ini

ini

name = ocr
title = 发票识别插件
intro = 通过OCR技术识别增值税发票、电子发票等
author = A
website = https://www.seacent.com
version = 1.0.4
state = 1
url = /addons/ocr/invoice
license = regular
licenseto = 102801

3. 编写发票识别逻辑

(1)集成 OCR 服务

可以选择以下 OCR API:

  • 百度 OCR(高精度版,适合增值税发票)

  • 腾讯云 OCR(支持多种发票类型)

  • 阿里云 OCR(稳定,适合企业级应用)

这里以 百度 OCR 为例(需安装 aip-php-sdk):

bash

composer require baidu/aip-sdk

(2)编写控制器 /addons/ocr/controller/Invoice.php

php

<?php
namespace addons\ocr\controller;use think\addons\Controller;
use AipOcr; // 百度OCR SDKclass Invoice extends Controller
{// 百度OCR配置protected $config = ['app_id' => '你的APP_ID','api_key' => '你的API_KEY','secret_key' => '你的SECRET_KEY',];// 上传图片并识别public function index(){if ($this->request->isPost()) {$file = $this->request->file('invoice_image');if (!$file) {$this->error('请上传发票图片');}$imagePath = $file->getRealPath();$client = new AipOcr($this->config['app_id'], $this->config['api_key'], $this->config['secret_key']);// 调用百度OCR增值税发票识别$result = $client->vatInvoice($imagePath);if (isset($result['words_result'])) {$this->success('识别成功', null, $result['words_result']);} else {$this->error('识别失败:' . ($result['error_msg'] ?? '未知错误'));}}return $this->fetch();}
}

4. 前端页面 /addons/ocr/view/index/index.html

html

<div class="panel panel-default"><div class="panel-heading">发票识别</div><div class="panel-body"><form class="form-horizontal" method="post" enctype="multipart/form-data"><div class="form-group"><label class="col-sm-2 control-label">上传发票</label><div class="col-sm-10"><input type="file" name="invoice_image" accept="image/*" class="form-control"></div></div><div class="form-group"><div class="col-sm-offset-2 col-sm-10"><button type="submit" class="btn btn-primary">开始识别</button></div></div></form><!-- 识别结果显示 -->{if isset($result)}<div class="alert alert-success"><h4>识别结果</h4><pre>{:json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)}</pre></div>{/if}</div>
</div>

5. 注册插件路由

在 /addons/ocr/config.php 中添加:

php

return ['invoice' => 'ocr/invoice/index', // 访问路径 /addons/ocr/invoice
];

6. 测试插件

  1. 启用插件

    • 进入 FastAdmin 后台 系统管理 -> 插件管理,找到 发票识别插件 并启用。

  2. 访问插件

    • 打开 http://你的域名/addons/ocr/invoice,上传发票图片测试识别效果。

http://www.dtcms.com/a/293697.html

相关文章:

  • Python笔记之跨文件实例化、跨文件调用、导入库
  • 算法竞赛备赛——【图论】拓扑排序
  • PAT 甲级题目讲解:1002《A+B for Polynomials》
  • 二分查找----2.搜索二维矩阵
  • (13)机器学习小白入门YOLOv:YOLOv8-cls中用TensorBoard实时监控指标
  • 深入浅出理解 Reactor:响应式编程的利器​
  • Github上传文件流程图
  • Docker 应用数据备份、迁移方案
  • Redis原理之分布式锁
  • 武德物业和浑元科技-《软件方法》第2章业务建模之愿景03
  • Oracle物化视图详解
  • 计算机网络第四章(4)——网络层《无分类编址CIDR、路由聚合》
  • ESP32-CAM实战:DIY基于OpenAI的AI视觉识别相机
  • 校园后勤服务平台小程序的设计与实现
  • Android埋点实现方案深度分析
  • 新手向:Idea的使用技巧
  • Android 架构演进:从 MVC 到 MVVM 的设计之道
  • SpringCloud seata全局事务
  • python在windows电脑找回WiFi密码
  • LinkedList的模拟实现+LinkedList和ArrayList的区别
  • 使用 Maven 的 `maven-assembly-plugin` 插件打包zip
  • UE5实现NPC头部朝向玩家功能
  • 旧手机部署轻量级服务器
  • HakcMyVM-Luz
  • 解构未来金融:深入剖析DeFi与去中心化交易所(DEX)的技术架构
  • ZooKeeper在Hadoop中的协同应用:从NameNode选主到分布式锁实现
  • CSS 基础
  • Web 服务器和Web 中间件
  • Apache POI 介绍与使用指南
  • 思路探索:当大型语言模型遇见数据分析的现实挑战