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小時內與您取得聯系。