文档章节

在Linux上搭建PHP条形码阅读器

rockman509
 rockman509
发布于 2017/02/28 17:53
字数 562
阅读 14
收藏 0
点赞 0
评论 0

无论你是一个开发者还是一个用户,你都或许听说过SaaS、Paas、laaS这些词。这是三个不同的云端模型。为什么越来越多的人都来拥抱类似于Google Cloud,Azure和AWS这样的云服务端?因为使用这些云服务器不需要下载应用,也不需要安装。大量的软件和应用已经可以通过B\S端实现。假设你现在想要搭建一个基于WEB的条形码阅读器,使用Dynamsoft Barcode Reader SDK可以加快你的开发进程。

 

 

下载SDK

Dynamsoft Barcode Reader 30-day Free Trial

 

条形码阅读器的PHP服务端

Dynamsoft Barcode Reader 支持 64-bit位的 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


通过表单上传条形码图片到服务器:

<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="ReadBarcode">
</form>

 

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

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 "Postdata 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


在浏览器访问http://localhost/DecodeLocalFile/index.php

Demo和源码

点击PHP Barcode Reader 查看demo.

点击这里下载源码。

© 著作权归作者所有

共有 人打赏支持
rockman509

rockman509

粉丝 6
博文 20
码字总数 25462
作品 0
静安
程序员
Windows上PHP扩展的实现,部署及应用

PHP对扩展的编写要求非常严格。如果没有按照官方文档,使用对应的PHP版本,PHP源码版本,以及Visual Studio版本,即使能够在Windows上成功编译DLL,也会因为版本不匹配报错,从而无法运行。之...

yushulx ⋅ 2015/12/18 ⋅ 0

北京中安未来电子护照阅读器(最新版本)

一、产品描述: 北京中安未来电子护照阅读器是一款外形轻巧美观的证件识读设备,它配备高清500万像素成像系统,采用TH-OCR技术可识别多种身份证件。可识读符合国际民航组织ICAO DOC 9303标准...

wenzuoyong123 ⋅ 04/23 ⋅ 0

开源RFID中间件--Rifidi EdgeServer

RifidiEdgeServer中间件,可从EPCGen2RFID阅读器收集数据,还可过滤信息并把信息传输到系统,并将数据运用到业务流程中。该中 间件不仅可与RFID读写器配合工作,而且还可与条形码扫描仪、传感...

匿名 ⋅ 2010/06/22 ⋅ 0

Pramari推出免费开源RFID中间件

2009年10月26日,RFID软件公司Pramari推出了一款开源中间件平台——Rifidi Edge Server,它可提供免费下载和使用。 另外,绝大多数中小规模的客户只需支付约5000美元的费用,就可获得公司的支...

老枪 ⋅ 2009/10/27 ⋅ 0

在lamp架构下搭建discuz论坛

成功在虚拟机中建立一个discuz论坛需要多个软件支持的,主要包括apache、MySQL、PHP。这几个软件的安装在我以前的文章中有过介绍,可以到我之前的文章中去了解 编译安装apache 编译安装MySQL...

cchenyz ⋅ 04/30 ⋅ 0

RFID简单介绍

RFID简介: RFID(射频识别:Radio Frequency Identification)俗称"电子标签",是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,作为条...

晚天吹凉风 ⋅ 03/01 ⋅ 0

Google Reader 的开源替代品

Google关闭Google Reader让所有人认识到过于依赖他人免费服务的后果。如果你有能力和资源,你完全可以自己搭建一个RSS阅读器服务,或者是改用本地客户端。 ownCloud是一个完整的开源自托管服...

oschina ⋅ 2013/03/28 ⋅ 16

Centos 6.9中PHPmyadmin 的搭建,WordPress的搭建,Discuz的搭建

首先呢,在Centos 6.9中需要一些准备环境,我是在我上一篇博客的基础上进行搭建的;再次基础上进行拓展搭建; httpd mysql-server php php-mysql 这四个rpm包,直接用yum装上,这个操作我就不...

刘景宇 ⋅ 05/04 ⋅ 0

网络服务搭建、配置与管理大全(Linux版)

出版社: 电子工业出版社 作者: 刘晓辉 等编著 出版日期:2009年3月 国标编号:ISBN 978-7-121-08071-5 条形码: 9787121080715 字数: 1055千字  印张: 38 印数:1-3500 页码: 540 开本:787*10...

刘晓辉 ⋅ 2009/04/21 ⋅ 0

学Linux运维自动化无头绪?Linux运维自动化怎么学?

最近几年Linux系统应用越来越广泛,以至于很多人开始热衷学习Linux。但是我们都是从小都是学习windows系统长大的,从windows 98到现在的windows 10,而根据学习windows系统的经验来学习Linux...

长沙千锋 ⋅ 04/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 44分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部