ue如何使用PHP word导入word文档?
·第一步,在前端view页面中添加etupload文件上传组件,设置show-file-list等于false,不显示上传文件列表。设置action为文件上传服务器端处理的地址,这个时候前端就会显示一个导入上传按钮。
·后端首先接收前端上传的word文档,最终在服务器端得到文件的磁盘路径。后端使用php word类的load方法将文档加载到document对象中,最终得到文档中的所有element元素。
·最后遍历得到的element元素,判断元素所属的类,从而获取到元素的文本内容,返回给前端。
前端当el upload文件上传成功后会回调一个函数,在回调函数中就可以获取到后端识别到的word文档的内容。当前端获取到内容之后就可以将内容赋值给需要的变量,用于实际的业务功能中。
phpword识别word文档是不是很简单?欢迎在评论区中讨论。
起因:因为公司遇到发稿问题,很多人喜欢用word编码,然后再发布到网站上。PHP的包中虽然有部分可以使用的类库,但是对于图片始终处理不好,我就想到了python。研究了下,python将word转为html还真是方便。但是,怎么结合到服务器上呢?我们的服务器是用PHP开发的。
1:python脚本
#!/usr/bin/python# -*- coding: UTF-8 -*-import sysfrom pydocx import PyDocXreload(sys)sys.setdefaultencoding('utf8')FileName=sys.argv[1] #获取文件名参数ShortName=sys.argv[2] #获取文件名参数html=PyDocX.to_html(FileName) # f=open("/www/wwwroot/micuer.com/pythoncode/runtime/99.txt", 'w') #服务器的全路径# f.write(html)# f.close()print(html)
2:php处理脚本
public function uploadword(){ try { $file=request()->file("file"); // 上传到本地服务器 $savename=\think\facade\Filesystem::disk('upload')->putFile( 'word', $file); $shotrname=time().".txt"; // 短名称 $savename="/www/wwwroot/micuer.com/data/upload/".$savename; //Request::domain(). $python_file_name="/www/wwwroot/micuer.com/pythoncode/WordToHtml.py"; //组装命令 $cmd="python {$python_file_name} ".$savename." {$shotrname} 2>error.txt 2>&1"; $res=exec($cmd,$array, $ret); return json(["code"=>200,"msg"=>"成功","data"=>$savename,"cmd"=>$cmd,"array"=>$array]); } catch (think\exception\ValidateException $e) { return json(["code"=>40000,"msg"=>$e->getMessage()]); } }
上传界面如下:
实现的功能就是利用PHP的exec函数,调用py脚本,将html代码返回给前台服务器。
返回数据如下
其实,再处理这个方案中,也遇到了很多问题,比如在命令行下只能成功,但是exec函数执行不成功等等。
参考了资料:https://my.oschina.net/u/4427610/blog/3155816
也就是
exec("python python_test.py 2>error.txt 2>&1", $array, $ret);
在bash中0,1,2三个数字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。
也可以通过以下方式将标准错误重定向到标准输出保存到$array中:
打印之后,发现是没有权限调用。于是就直接改为输出了,也就是 py的print(html)函数。
注意几点:
1:执行权限问题
2:exec(“python python_test.py 2>error.txt 2>&1”, $array, $ret); 中 $array就接受到了 print(html)的值
3:各个脚本尽量使用全路径
TML编辑器 复制WORD里面带图文的文章,图片可以直接显示,JSP – 支持WORD上传的富文本编辑器,EWEBEDITOR 从WORD中复制内容带多张图片,如何从WORD文档复制公式到富文本编辑器,复制word图片,从word中复制图片,
从word中粘贴图片,粘贴word内容,粘贴word图片,粘贴word图文,复制粘贴word文档,复制粘贴word图片,复制粘贴word图文,复制粘贴word内容,
之前在网上找过相关的资料,论坛里面也有网友交流过,还加过不少QQ群和微信群,但是结果都不太令人满意。相关的文章提问的人多,能够给出方案的人少,能够给出成熟产品的就更少了,说的直接一点根本就没有,纯属浪费时间。要示例没示例,要代码没代码,根本就用不了,
有几个方面的原因吧,一个是网上的资料提的一些都是开源的方案,也不是说开源的方案不行,关键是提到的这些方案,公司项目组去评估发现联系不到开发人员,而且方案本身也停止更新了,处于没有人维护的状态,所以项目组这边不太敢用。主要是之前在这块也踩过坑。
客户那边也不差这点钱,之前公司项目组就是在这块踩过坑,用了开源的方案,客户那边提了一个新需求,但是由于项目组对产品本身并不熟悉,导致没办法进行二次开发。
从word中复制图片和文字内容,然后粘贴到web富文本编辑器中,粘贴后word图片自动上传到web服务器中,自动将图片和文字HTML添加到编辑器中,保留word中的文字格式,文字颜色,字体,样式,
用户发布新闻的时候是从word里面复制图片和文字,然后将word图文内容粘贴到web富文本编辑器中,希望能够将word的图片自动上传到服务器中,服务器地址能够自定义,
后端的话需要支持任意开发语言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于标准HTTP协议的都要支持。如果能够不装控件最好,视频教程:https://www.ixigua.com/7233953214108795407
1.下载示例:
http://www.ncmem.com/webapp/wordpaster/versions.aspx
2.复制WordPaster插件目录
3.引入插件文件
注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4
4.在工具栏中增加插件按钮
6.初始化控件
注意:
1.如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段
参考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45
2.如果接口返回JSON,请配置ImageMatch
参考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1
3.如果接口返回的图片地址没有域名,请配置ImageUrl
参考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936
4.如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
效果
订阅版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAw70JsA8m
政企版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuqJtN30#/
年费版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwFouDIB4#/
OEM版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwV00mQSY
产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwz13B5Tr
授权码生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwzYuEEY1
*请认真填写需求信息,我们会在24小时内与您取得联系。