用PHP开发一个简单的批量上传图片格式文件转成WORD小程序

如今我们在一些小程序里可以看到,有直接拍照或者上传图片,就可以被识别成文本内容,可以保存为WORD格式,这对于一些办公室文员或者助理来说使用率是比较高的,但小编发现这些小程序中都会保存用户上传的内容,安全性存在担忧,所以这几天,自己写了一个,因为经常会有纸质文件需要输入到电脑中保存,过去的话,我们需要一个个的打字,如今利用OCR进行识别,准确率高达99%,今天小编就为大家送上这个小工具。

首先服务器需要PHP5.3版本的运行环境。

在用户操作端,可以单个上传或者多张上传,支持手机和电脑自适应。

上传后,会自动生成WORD文件弹出下载保存提示。

需要用到的API为百度的OCR引擎,以上是目录结构

JS目录是放一个JQ文件,建议使用jquery-1.10.2.min.js

OCR是存放百度API识别文件(自动百度去申请API后下载对应的文件,放入该目录)

up目录是上传临时图片文件用到的,当识别完成后会自动删除图片。

index.php是上传界面,也可以是index.htm,这是一个静态文件

word.php是一个功能文件,主要是处理上传和识别文字的一个核心文件,由 index.php提交后,它去处理的。

今天就把index.php和word.php分享出来,其他文件可以从互联网获得。

index.php

图片转WORD文件

图片转WORD文件

可同时选择多个图片上传,注意:手机直接拍照时只能一次上传一张,建议先拍到手机相册后再批量选择上传!

本系统采用缓存技术,不保存用户上传资料,所有操作关闭或者刷新都将自动清除!

word.php

header("Content-type: text/html; charset=utf-8");

$arr=$_FILES["file"]["tmp_name"];

$arr2=$_FILES["file"]["type"];

foreach($arr2 as $vp){

if(!stristr($vp,'image/')) exit("");

}

foreach($arr as $k=>$v){

$fname=time().rand(100,999);

$houzui = strtolower(pathinfo($_FILES["file"]['name'][$k], PATHINFO_EXTENSION));//获取后缀

$hz = '.'.strtolower($houzui);

move_uploaded_file($v,"up/" . $fname.$hz);

$pic_arr[]=$fname.$hz;

}

require_once 'orc/AipOcr.php';

// 你的 APPID AK SK

$APP_ID = ' ';

$API_KEY = ' ';

$SECRET_KEY = ' ';

$client = new AipOcr($APP_ID, $API_KEY, $SECRET_KEY);

$sl=0;

foreach($pic_arr as $vs){

$image = file_get_contents('up/'.$vs);

$sl++;

unlink('up/'.$vs);

// 调用通用文字识别, 图片参数为本地图片

$jg=$client->basicGeneral($image);

$jgs=$jg['words_result'];

if($jgs){

foreach($jgs as $v)

{

$words.=$v['words'].'

';

}

}

$words.='--------第'.$sl.'张图内容----------

';

$words.='

';

}

echo '

Print

';

echo ' '.$words.'';

ob_start(); //打开缓冲区

header("Cache-Control: public");

Header("Content-type: application/octet-stream");

Header("Accept-Ranges: bytes");

if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) {

header('Content-Disposition: attachment; filename=OK.doc');

}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) {

Header('Content-Disposition: attachment; filename=OK.doc');

} else {

header('Content-Disposition: attachment; filename=OK.doc');

}

header("Pragma:no-cache");

header("Expires:0");

ob_end_flush();//输出全部内容到浏览器

?>

在核心文件中,处理上传,识别成文字,自动删除图片,自动生成WORD分页,然后弹出下载提示,保存的word文件即时我们需要的内容了。

说明:以上PHP核心文件未考虑安全性,仅供学习使用,若需要投入到真正的使用过程中,请自行增加程序的安全性。

希望大家用来练手,能写出更好的在线工具,为工作和生活提供更多的便利,也可以留言和我交流。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();