网站开发注销代码洞窝app是谁开发的
2026/4/18 6:45:56 网站建设 项目流程
网站开发注销代码,洞窝app是谁开发的,海口网络平台网站开发,建设银行深圳分行网站日期#xff1a;2023年X月X日 角色#xff1a;北京XX软件公司 全栈开发工程师 项目背景#xff1a;客户要求在后台管理系统的文章发布模块新增两大功能#xff1a; Word粘贴功能#xff1a;支持从Word复制内容粘贴到UEditor#xff0c;图片自动上传至阿里云OSS#xff…日期2023年X月X日角色北京XX软件公司 全栈开发工程师项目背景客户要求在后台管理系统的文章发布模块新增两大功能Word粘贴功能支持从Word复制内容粘贴到UEditor图片自动上传至阿里云OSS保留样式字体、字号、颜色等。文档导入功能支持上传Word/Excel/PPT/PDF解析内容并保留图片和样式渲染至UEditor。一、技术可行性分析与工具选型1. Word粘贴功能核心问题浏览器原生粘贴事件无法直接处理Word中的复杂样式和图片图片以base64或剪贴板对象形式存在。UEditor默认粘贴过滤规则会丢弃Word特有样式如mso-前缀的CSS。解决方案前端处理监听粘贴事件拦截Word内容提取HTML和图片。图片处理将base64图片通过API上传至阿里云OSS替换HTML中的图片链接。样式保留修改UEditor配置允许保留Word相关CSS属性如font-family、color。工具评估mammoth.js轻量级Word转HTML库但仅支持文本样式无法处理图片。docx-preview纯前端解析Word但与UEditor集成复杂。自定义方案结合UEditor的paste事件和阿里云OSS SDK自主开发粘贴处理逻辑。结论采用自定义方案基于UEditor的afterPaste钩子结合后端图片上传接口实现。2. 文档导入功能核心问题需支持多种格式Word/Excel/PPT/PDF且解析后保留样式和图片。大文件如PPT解析性能优化。解决方案后端解析使用PHP库如PhpOffice套件解析文档提取文本、图片和样式。图片处理解析时提取图片并上传至阿里云OSS生成可访问URL。前端渲染将解析后的HTML注入UEditor保留格式。工具评估PhpOffice\PhpWord支持DOCX解析但需手动处理图片嵌入。PhpOffice\PhpPresentation解析PPT但样式兼容性较差。Smalot\PdfParser解析PDF文本但无法保留复杂排版。unoconv LibreOffice通过命令行将文档转为HTML但依赖服务器环境。结论Word/Excel/PPT使用PhpOffice套件解析针对图片和样式做特殊处理。PDF调用第三方API如阿里云文档转换服务或部署unoconv服务。二、开发过程记录1. Word粘贴功能实现前端Vue2 UEditor监听粘贴事件// 在UEditor初始化后绑定事件consteditorUE.getEditor(editor);editor.addListener(afterPaste,function(){consthtmleditor.getContent();// 检查是否包含Word特有的CSS或base64图片if(html.includes(mso-)||html.includes(data:image)){handleWordPaste(html);}});functionhandleWordPaste(html){// 提取base64图片并上传constimgTagshtml.match(/]srcdata:image[^]/g)||[];imgTags.forEach(async(imgTag){constbase64imgTag.match(/srcdata:image([^;]);base64,([^])/);if(base64){constresponseawaituploadToOSS(base64[2],base64[1]);// 上传至阿里云constnewHtmlhtml.replace(imgTag,imgTag.replace(base64[0],src${response.url}));editor.setContent(newHtml);// 更新编辑器内容}});}UEditor配置调整在ueditor.config.js中修改whitelist允许保留Word样式whitelist:{span:[style,color,font-family,font-size],p:[style,margin,text-align]}后端PHP 阿里云OSS// 图片上传接口publicfunctionuploadWordImage(){$base64$_POST[image];$extension$_POST[type];// e.g., png$ossClientnewOssClient($key,$secret,$endpoint);$objectword-images/.uniqid()...$extension;$ossClient-putObject($bucket,$object,base64_decode($base64));echojson_encode([urlhttps://.$bucket..oss-cn-beijing.aliyuncs.com/.$object]);}2. 文档导入功能实现后端PHPOffice解析// Word导入示例publicfunctionimportDocx($filePath){$phpWord\PhpOffice\PhpWord\IOFactory::load($filePath);$html;foreach($phpWord-getSections()as$section){foreach($section-getElementss()as$element){if(method_exists($element,getElementss)){// 处理段落、表格等$html.$this-convertElementToHtml($element);}}}// 提取图片并上传至OSSpreg_match_all(/]src([^])/,$html,$matches);foreach($matches[1]as$localPath){$ossUrl$this-uploadToOSS($localPath);$htmlstr_replace($localPath,$ossUrl,$html);}return$html;}前端Vue2文件上传export default { methods: { checkFileType(file) { const allowedTypes [docx, xlsx, pptx, pdf]; const extension file.name.split(.).pop().toLowerCase(); return allowedTypes.includes(extension); }, handleImportSuccess(response) { this.$refs.ueditor.setContent(response.html); // 将解析后的HTML注入UEditor } } };三、问题与优化性能问题大文件如PPT解析耗时较长采用异步任务队列如RabbitMQ优化。样式兼容性Word中的复杂样式如文本框需手动转换为HTML/CSS。安全性对上传文件进行MIME类型校验防止恶意文件上传。四、总结通过结合UEditor的扩展能力、PhpOffice的文档解析库和阿里云OSS的图片存储成功实现了客户需求。后续计划将文档解析服务拆分为独立微服务提升系统可扩展性。复制插件目录引入插件文件UEditor 1.4.3.3示例注意不要重复引入jquery如果您的项目已经引入了jq则不用再引入jq-1.4在工具栏中增加插件按钮//工具栏上的所有的功能按钮和下拉框可以在new编辑器的实例时选择自己需要的重新定义toolbars:[[fullscreen,source,|,zycapture,|,wordpaster,importwordtoimg,netpaster,wordimport,excelimport,pptimport,pdfimport,|,importword,exportword,importpdf]]初始化控件varposwindow.location.href.lastIndexOf(/);varapi[window.location.href.substr(0,pos1),asp/upload.asp].join();WordPaster.getInstance({//上传接口http://www.ncmem.com/doc/view.aspx?idd88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名http://www.ncmem.com/doc/view.aspx?id704cd302ebd346b486adf39cf4553936ImageUrl:,//设置文件字段名称http://www.ncmem.com/doc/view.aspx?idc3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:file,//提取图片地址http://www.ncmem.com/doc/view.aspx?id07e3f323d22d4571ad213441ab8530d1ImageMatch:});//加载控件注意如果接口字段名称不是file请配置FileFieldName。ueditor接口中使用的upfile字段点击查看详细教程配置ImageMatch匹配图片地址如果服务器返回的是JSON则需要通过正则匹配ImageMatch:,点击参考链接配置ImageUrl为图片地址增加域名如果服务器返回的图片地址是相对路径可通过此属性添加自定义域名。ImageUrl:,点击查看详细教程配置SESSION如果接口有权限验证登陆验证SESSION验证请配置COOKIE。或取消权限验证。点击查看配置教程功能演示编辑器界面导入Word文档,支持doc,docx导入Excel文档,支持xls,xlsx粘贴Word一键粘贴Word内容自动上传Word中的图片保留文字样式。Word转图片一键导入Word文件并将Word文件转换成图片上传到服务器中。导入PDF一键导入PDF文件并将PDF转换成图片上传到服务器中。导入PPT一键导入PPT文件并将PPT转换成图片上传到服务器中。上传网络图片下载示例点击下载完整示例

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询