构建基于云的条码读取服务

随着云计算技术的不断发展,越来越多的服务开始转向云端。例如,Amazon Web Services (AWS)、Microsoft Azure和Google Cloud等平台提供了丰富的云服务,用户无需下载和安装任何应用程序,只需通过Web浏览器即可访问各种软件和功能。假设想从头开始构建一个Web条码读取服务,Dynamsoft Barcode Reader SDK可以加速开发过程。

DynamsoftBarcode Reader SDK的Linux版本支持以下操作系统:

  • Ubuntu 14.04.4+ LTS
  • CentOS 7+
  • Debian 8+

此外,它还支持以下Web服务器:

  • Nginx
  • Apache

支持的PHP版本包括:

  • 64位PHP 5.3
  • 64位PHP 5.4
  • 64位PHP 5.5
  • 64位PHP 5.6

无论是线程安全还是非线程安全的版本都得到支持。

支持的条码类型

Dynamsoft Barcode Reader SDK支持多种1D和2D条码类型,包括:

  • 1D: Code 39, Code 93, Code 128, Codabar, EAN-8, EAN-13, UPC-A, UPC-E, ITF, Industrial 2 of 5
  • 2D: QRCode, DataMatrix, PDF417

同时,它还支持以下图像类型:

  • BMP
  • JPEG
  • PNG
  • GIF
  • TIFF
  • PDF

能够检测到的条码信息包括条码类型、条码数量、条码值、条码原始数据、条码边界矩形、四个角的坐标以及页码等。

功能特点

Dynamsoft Barcode Reader SDK具有以下特点:

  • 高效:能够在一张图片中读取多个条码。
  • 强大:能够读取质量较差和损坏的条码。
  • 灵活:能够检测任何方向和旋转角度的条码。

服务器端PHP条码读取器支持64位PHP从版本5.3到5.6。因此,需要首先检查系统上安装的PHP版本:

php -v

除了PHP版本,还需要知道PHP是否是线程安全的:

php -i | grep Thread

将Dynamsoft Barcode Reader的共享库复制到/usr/lib:

sudo cp /lib/* /usr/lib

编辑php.ini以添加以下扩展路径:

extension=/php/extension///php_DynamsoftBarcodeReader.so

使用表单上传条码图片到Web服务器:

<form id="uploadForm" method="post" action="readbarcode.php" enctype="multipart/form-data"> <input type="file" id="upLoadFile" name="upLoadFile" class="ImgLocalPath"/> <input type="text" readonly="readonly" id="txtUploadFileName" class="radius3"/> <input type="button" id="btnUploadFile" value="Browse..." class="radius3 ml20"/> <input type="submit" id="btnReadBarcode" class="radius3 left ml20" value="Read Barcode"/> </form>

在服务器端检测条码数据:

<?php include 'DynamsoftBarcodeReader.php'; ini_set('display_errors', 1); error_reporting(E_ALL); $post_max_size = ini_get('post_max_size'); $maxsize = return_bytes($post_max_size); if($_SERVER['CONTENT_LENGTH'] > $maxsize) { echo "Post data size is bigger than " . $post_max_size; exit; } $file = $_FILES["upLoadFile"]["tmp_name"]; if(!empty($file)){ readBarcode($file); } else{ echo "Fail to upload file."; } function readBarcode($path) { try{ $br = new BarcodeReader(); } catch(exception $exp) { echo "Your barcode reader component is not registered correctly. Please refer to ReadMe.txt for details.<br/>"; exit; } $br->initLicense('693C401F1CC972A5018B729568B0CDD8'); try{ $br->decodeFile($path); } catch(Exception $exp) { echo $br->getErrorString() . "<br/>"; exit; } $cnt = $br->getBarcodesCount(); if($cnt > 0) { echo "Total barcode(s) found:" . $cnt . ".<br/>"; for($i = 0; $i < $cnt; $i++) { $result = $br->getBarcodeResult($i); echo ($i+1) . ": "; echo "$result->BarcodeFormatString, "; echo "$result->BarcodeText<br/>"; } } else{ echo "No barcodes found.<br/>"; } } ?>

如何将示例代码部署到Ubuntu上的Apache

安装php5-curl、apache2和libapache2-mod-php5:

sudo apt-get install php5-curl apache2 libapache2-mod-php5

解压包并将项目复制到/var/www/html/:

sudo cp -r DecodeLocalFile /var/www/html

在/etc/php5/apache2/php.ini中添加扩展路径:

启动Apache服务:

sudo service apache2 start

在Firefox或Chrome中访问http://localhost/DecodeLocalFile/index.php。

在线演示

访问PHP Barcode Reader在线演示。

获取SDK和示例

如果想构建一个基于LinuxPHP服务器端条码读取器,请立即开始:

DynamsoftBarcode Reader 30天免费试用

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485