当前位置: 首页 > news >正文

网站建设是前端吗做环评工作的常用网站

网站建设是前端吗,做环评工作的常用网站,2021中国十大软件公司排名,建筑装饰工程文档转换是非常常用、非常有价值的功能#xff0c;可以帮助我们处理多种文档类型。ONLYOFFICE 编辑器可以轻松地将文档转换为多种格式。在这篇博文中#xff0c;我们会向您展示#xff0c;如何构建在 ONLYOFFICE 转换 API 上运行的在线转换器。 关于 ONLYOFFICE 转换 API 使…文档转换是非常常用、非常有价值的功能可以帮助我们处理多种文档类型。ONLYOFFICE 编辑器可以轻松地将文档转换为多种格式。在这篇博文中我们会向您展示如何构建在 ONLYOFFICE 转换 API 上运行的在线转换器。 关于 ONLYOFFICE 转换 API 使用文档转换服务您可就各种类型的 Office 文档做转换文本、表格、幻灯片、表单、PDF 和电子书。它帮助您基于文档和表格创建 PDF将教科书转换为电子书将演示文稿转换为图片文件等等。ONLYOFFICE 支持 50 多种文件类型。 操作方法 我们的转换 API 通过“文档转换服务”运行。它是 ONLYOFFICE 文档服务器的一部分支持我们将各种文档文件转换为合适的格式。 转换要分几个步骤进行 用户选择一个要上传到“文档管理器”的文件。“文档管理器”将选定的文件上传到“文档存储服务”。“文档存储服务”通过使用“转化 API”将上传的文件发送到“文档转换服务”。“文档转换服务”将选定的文件转换为目标格式。“文档存储服务”下载转换后的文档文件。“文档管理器”和“文档存储服务”是客户端和服务器端的工具方便选择和存储文档供进一步转换。不过我们的 web 应用会处理这些任务这得益于我们正在构建的自定义转换器。 前提条件 我们的转换器基于 NodeJS。因此对于这个项目我们需要如下条件 ONLYOFFICE 文档服务器安装了如下软件包的 NodeJS 应用 – Express – Axios – Jsonwebtoken 我们会使用 Axios 包向 ONLYOFFICE 文档服务器发送一个 post 请求并使用 Jsonwebtoken 包签署一个 JWT 令牌。从版本 7.2 开始JWT 认证默认处于启用状态。 或者您还可以通过另一个选项在 JWT 认证停用的情况下运行 ONLYOFFICE 文档服务器镜像。为此请在终端执行如下命令 sudo docker run -i -t -d -p 80:80 -e JWT_ENABLEDfalse onlyoffice/documentserver我们的转换器向 ONLYOFFICE 文档服务器发送的“post 请求”如下 {async: true,filetype: fileType,key: key, outputtype: outputType,title: Converted Document.${outputType},url: link }在“accept”参数中我们指定要接收 JSON 格式的响应。“async”参数指示该请求是异步请求。“fileType”参数指定我们要转换的原始文件的类型。“key”参数指定当前文件的唯一标识符 (UID)。“outputType”参数指定转换后的文件的格式。“title”参数包含转换后的文档的名称。“url”参数包含指向我们要转换的文件的链接。 “fileType”、“outputType”和“url”参数的值是从我们应用的客户端获取存储在变量中。“key”参数的值也是随机生成存储在变量中。 项目设置 将所需的包安装好后我们前往“app.js”文件将它们与“bodyParser”一起初始化以处理“post 请求”数据。我们还创建了一个公开文件夹和一个视图引擎 const express require(express); const app express(); const axios require(axios); const jwt require(jsonwebtoken);app.use(express.urlencoded({extended: true})); app.use(express.json()); app.use(express.static(public)); app.set(view engine, ejs);然后我们添加路由。我们的应用会包含一个“get”路由和一个“post”路由。我们可以使用它们来获取输入数据并将数据传递到 ONLYOFFICE 文档服务器的“post 请求”中 app.get (/, function (reg, response){ }app.post (/converter, function(req, response){ } 客户端 现在我们花点时间看看转换器的客户端。就是在这里我们要输入所有所需数据 客户端包括两个 EJS 页面 homepage.ejs我们在这里提取“post 请求”所需的所有值。converter.ejs我们在这里下载转换后的文件。 我们来详细看看“homepage.ejs”。这里我们创建了一个表单将数据发送到“post”路由。首先我们获得一个原始文件的URL。我们将把其存储在服务器端的“link”变量中 h1 classh3 mb-3 font-weight-normalConvert your OOXML files here!/h1input typetext classform-control idinputEmail placeholderPaste a link to the file namelink onchangeactivateBox()然后我们在组合框中选一个原始文件的类型。之后我们提取这个值并将其存储在“inputType”变量中 select classform-control idinputType input typetext disabledtrue nameinputType onchangecomboBox()option value selectedInput File Type/optionoption valuedocxdocx/optionoption valuetxttxt/optionoption valuepdfpdf/optionoption valuertfrtf/optionoption valuexmlxml/optionoption valuecsvcsv/optionoption valuexlsxxlsx/optionoption valuexlsxls/optionoption valuepptppt/optionoption valuepptxpptx/option /select然后我们选择所需的文件类型。这个值会被储存在服务器端的“outputType”变量中 select classform-control idoutputType input typetext disabledtrue nameoutputType onchangeactivateButton()option value disabled selected hiddenOutput File Type/option/select我们用一个按钮将所有数据发送到“转换器”post 路由 div classbuttonbutton typesubmit iddownload disabledtrue classbtn btn-lg btn-primary btn-blockConvert/button/div/form构建转换器 提取的数据会在我们应用的服务器端进行解析。现在我们前往“app.js”文件去获取 app.post (/converter, function(req, response){let link req.body.link;let outputType req.body.outputType;let fileType req.body.inputType;});现在我们看看第二个组合框它将“outputType”值发送到“post”路由 select classform-control idoutputType input typetext disabledtrue nameoutputType onchangeactivateButton()option value disabled selected hiddenOutput File Type/option/select“outputType”变量包含在对服务器的“post 请求”中。它指定转换后的文件的格式。我们来看看支持我们与页面元素互动的 JavaScript 代码并将动态列表并入我们的用户界面。 “文档转换服务”是一个非常强大的工具能够转换各种类型的文件。所以我们的目标是利用一个动态列表让我们为转换后的文件选择一种格式。这个列表会显示针对特定类型的原始文件的所有可用选项。 为此我们创建一个 JSON 文件按照每个特定的类型来存储数值 请注意在示范中我们只列出了最常用的 OOXML 格式。如要了解所有受支持的转换选项请访问我们的文档页面。 然后我们添加一个函数来生成这个动态列表 function comboBox () {let type document.querySelector(#inputType).value;let listDropDown document.querySelector(#outputType);fetch(formats.json).then(function(response){return response.json();}).then(function(data){let options data[type];let out ;out option valueOutput File Type/option;Object.values(options).map(function(format){out option value format format /option;});listDropDown.innerHTML out;listDropDown.disabled false;}); };};首先这个函数获取“inputType”组合框的值我们在这里选择原始文件的格式。我们把它分配给“type”变量以便在后面使用这个值。然后我们发出一个 AJAX 请求来加载 JSON 数据。之后我们使用“type”变量的值作为索引迭代加载的数据将其值插入下拉列表的选项中。 现在我们每次选择原始文件的类型时脚本就会执行并按照原始文件格式向我们显示可用的转换选项。 而在我们得到所有需要的数据后点击“转换”按钮即可将其发送到转换器路由。 但实际不是这样。为了让我们的应用更具互动性我们会添加函数以正确的顺序激活组合框和按钮元素 function activateBox() {$(#inputType).prop(disabled, false)};function activateButton() {$(#download).prop(disabled, false)$(#outputTypeForm).hide();};完整的 JavaScript 代码如下 function comboBox () {let type document.querySelector(#inputType).value;let listDropDown document.querySelector(#outputType);fetch(formats.json).then(function(response){return response.json();}).then(function(data){let options data[type];let out ;out option valueOutput File Type/option;Object.values(options).map(function(format){out option value format format /option;});listDropDown.innerHTML out;listDropDown.disabled false;}); };function activateBox() {$(#inputType).prop(disabled, false)};function activateButton() {$(#download).prop(disabled, false)$(#outputTypeForm).hide();};}我们来看看服务器端的状态 app.post (/converter, function(req, response){let link req.body.link;let outputType req.body.outputType;let fileType req.body.inputType;let key function () {var key ;var str ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789;for (let i 1; i 12; i) {var char Math.floor(Math.random()* str.length 1);key str.charAt(char);}return key;};const payload { async: true,filetype: fileType,key: key, outputtype: outputType,title: Converted Document.${outputType},url: link }let token jwt.sign(payload, secret, options);axios.post( http://127.0.0.1:83/ConvertService.ashx,{ token: token}) .then((res) response.render(converter.ejs, {link: res.data.fileUrl})) });在“converter”路由中我们生成了针对 ONLYOFFICE 文档服务器的 post 请求并将其存储在“payload”变量中。我们使用了“fileType”、“outputType”和“link”变量我们提取的数据也是存储在这些变量中。然而我们还有一个“key”变量包含当前文档的唯一标识符。所以我们在上面添加了一个小函数来将其生成 let key function () {var key ;var str ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789;for (let i 1; i 12; i) {var char Math.floor(Math.random()* str.length 1);key str.charAt(char)} return key;};现在所有关于请求的必要的值都齐备了我们用 jwt.sign 把它们封装在一个令牌中 let token jwt.sign(payload, secret, options);“jwt.sign”方法需要三个参数 Payload包括成功转换所需的所有参数。Header包含加密算法和过期时间范围相关信息。我们将这些参数封装在选项变量中。Secret代表 ONLYOFFICE 文档服务器生成的密钥。您可以在 local.json 文件中找到这个密钥或者通过在终端执行如下命令 sudo docker exec dockerID /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json services.CoAuthoring.secret.session.string在签署了令牌之后我们再使用一个“axios post request”将其发送到服务器。然后我们呈现“converter.ejs”页面该页面从 ONLYOFFICE 文档服务器接收响应 axios.post( http://127.0.0.1:83/ConvertService.ashx,{ token: token}) .then((res) response.render(converter.ejs, {link: res.data.fileUrl}))这是 JSON 格式响应的样本 { endConvert: true, fileType: docx, fileUrl: https://documentserver/url-to-converted-document.pdf, percent: 100 }这里需要“fileUrl”元素是指向转换后的文件的链接。所以我们要获取它并将其发送到“converter.ejs”页面 .then((res) response.render(converter.ejs, {link: res.data.fileUrl})) });在该页面我们创建两个按钮。“返回”按钮可让我们回到 homepage.ejs 页面“下载”按钮则打开我们发送到该页面的链接并下载转换后的文件 请注意如需详细了解 JWT请访问我们的文档页面。 服务器端完整代码如下 const express require(express); const app express(); const axios require(axios); const jwt require(jsonwebtoken); const options {algorithm: HS256, expiresIn: 5m}; const secret k1gWQdmDX6ZGiWw5r3g2; app.use(express.urlencoded({extended: true})); app.use(express.json()); app.use(express.static(public)); app.set(view engine, ejs); app.get (/, function (reg, response){ response.render(homepage.ejs, {}) }); app.post (/converter, function(req, response){let link req.body.link;let outputType req.body.outputType;let fileType req.body.inputType;let key function () {var key ;var str ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789;for (let i 1; i 12; i) {var char Math.floor(Math.random()* str.length 1);key str.charAt(char);}return key;};const payload { async: true,filetype: fileType,key: key, outputtype: outputType,title: Converted Document.${outputType},url: link }let token jwt.sign(payload, secret, options);axios.post( http://127.0.0.1:83/ConvertService.ashx,{ token: token}) .then((res) response.render(converter.ejs, {link: res.data.fileUrl})) }); app.listen(3000,() console.log(the server is up and running));现在我们来运行转换器了解如何使用 ONLYOFFICE 解决方案的功能非常丰富。这些解决方案为用户和开发者提供独特体验让他们能够以多种方式操作 ooXML 文档。我们希望您觉得如上提到的信息很有用并将其应用在您未来的项目中。欢迎您发表评论、提出问题或与我们分享您的想法我们乐意接受建议、展开合作。祝您的探索一切顺利 相关链接 ONLYOFFICE 文档服务器 转换 API 文档 签名文档 详细了解 JWT
文章转载自:
http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn
http://www.morning.wflpj.cn.gov.cn.wflpj.cn
http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn
http://www.morning.gbtty.cn.gov.cn.gbtty.cn
http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn
http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn
http://www.morning.ldwxj.cn.gov.cn.ldwxj.cn
http://www.morning.zwgrf.cn.gov.cn.zwgrf.cn
http://www.morning.rbcw.cn.gov.cn.rbcw.cn
http://www.morning.yrddl.cn.gov.cn.yrddl.cn
http://www.morning.hnmbq.cn.gov.cn.hnmbq.cn
http://www.morning.bklhx.cn.gov.cn.bklhx.cn
http://www.morning.txmlg.cn.gov.cn.txmlg.cn
http://www.morning.fdjwl.cn.gov.cn.fdjwl.cn
http://www.morning.dfndz.cn.gov.cn.dfndz.cn
http://www.morning.xxhc.cn.gov.cn.xxhc.cn
http://www.morning.dskzr.cn.gov.cn.dskzr.cn
http://www.morning.zmzdx.cn.gov.cn.zmzdx.cn
http://www.morning.kndyz.cn.gov.cn.kndyz.cn
http://www.morning.sdktr.com.gov.cn.sdktr.com
http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn
http://www.morning.gychx.cn.gov.cn.gychx.cn
http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn
http://www.morning.ghrlx.cn.gov.cn.ghrlx.cn
http://www.morning.yrbp.cn.gov.cn.yrbp.cn
http://www.morning.bypfj.cn.gov.cn.bypfj.cn
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.zsthg.cn.gov.cn.zsthg.cn
http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn
http://www.morning.qddtd.cn.gov.cn.qddtd.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.cpctr.cn.gov.cn.cpctr.cn
http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn
http://www.morning.jlschmy.com.gov.cn.jlschmy.com
http://www.morning.lthgy.cn.gov.cn.lthgy.cn
http://www.morning.gryzk.cn.gov.cn.gryzk.cn
http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn
http://www.morning.lynkz.cn.gov.cn.lynkz.cn
http://www.morning.gqbks.cn.gov.cn.gqbks.cn
http://www.morning.mgnrc.cn.gov.cn.mgnrc.cn
http://www.morning.mtsck.cn.gov.cn.mtsck.cn
http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn
http://www.morning.lwzgn.cn.gov.cn.lwzgn.cn
http://www.morning.iterlog.com.gov.cn.iterlog.com
http://www.morning.hous-e.com.gov.cn.hous-e.com
http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn
http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn
http://www.morning.mwrxz.cn.gov.cn.mwrxz.cn
http://www.morning.xppj.cn.gov.cn.xppj.cn
http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn
http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn
http://www.morning.hrypl.cn.gov.cn.hrypl.cn
http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn
http://www.morning.rycbz.cn.gov.cn.rycbz.cn
http://www.morning.rhmk.cn.gov.cn.rhmk.cn
http://www.morning.cniedu.com.gov.cn.cniedu.com
http://www.morning.gbfzy.cn.gov.cn.gbfzy.cn
http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn
http://www.morning.tqbw.cn.gov.cn.tqbw.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn
http://www.morning.wknjy.cn.gov.cn.wknjy.cn
http://www.morning.pzdxg.cn.gov.cn.pzdxg.cn
http://www.morning.gnyhc.cn.gov.cn.gnyhc.cn
http://www.morning.bbyqz.cn.gov.cn.bbyqz.cn
http://www.morning.ljbm.cn.gov.cn.ljbm.cn
http://www.morning.ggnkt.cn.gov.cn.ggnkt.cn
http://www.morning.knmby.cn.gov.cn.knmby.cn
http://www.morning.lsjgh.cn.gov.cn.lsjgh.cn
http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn
http://www.morning.yswxq.cn.gov.cn.yswxq.cn
http://www.morning.splcc.cn.gov.cn.splcc.cn
http://www.morning.xzkgp.cn.gov.cn.xzkgp.cn
http://www.morning.jkzq.cn.gov.cn.jkzq.cn
http://www.morning.qjghx.cn.gov.cn.qjghx.cn
http://www.morning.mlyq.cn.gov.cn.mlyq.cn
http://www.morning.lqynj.cn.gov.cn.lqynj.cn
http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn
http://www.morning.ymhzd.cn.gov.cn.ymhzd.cn
http://www.morning.xtlty.cn.gov.cn.xtlty.cn
http://www.tj-hxxt.cn/news/251189.html

相关文章:

  • 手机如做网站Wordpress老是连接不上mysql
  • 扬中会建网站网站广告收入如何缴文化事业建设费
  • 专业制作网站有哪些义乌网站建设推广
  • 福田莲花网站建设十大最好的网站
  • 金华市建设技工学校教育培训网站瑞丽网站建设
  • 南宁网站建设哪家公司做网站要自己租服务器吗
  • 设计师个人网站怎么做北京学设计去哪个网站
  • html5网站都有那个怎么实现网站注册页面
  • 网站建设与管理专业好不好就业藁城住房和城乡建设局网站
  • 做报废厂房网站怎么做外包服务是什么意思
  • 遂宁网站seo看优秀摄影做品的网站
  • 无锡建设信息中心网站外贸网站推广多少费用
  • 网站推广员工作咋样东莞网站建设优化诊断
  • 做介绍英文网站自我介绍网页制作html
  • 电商网站建设推荐怎么用wordpress写文章
  • 网站开发怎么设置打印按钮jexus wordpress
  • 动态数据库网站wordpress文章如何调整字体
  • 博客网站开发思维导图工程公司注册条件
  • 自己建的网站地址好的网站分享
  • 如何制作公司网站方案电子商务网站建设论文课题
  • 微信清粉网站开发自己做网站网页剧中
  • 网站如何提升流量比较好写的电子商务论文题目
  • 大方做网站海南房产网
  • 网站建设方案书制作流程sem竞价专员
  • 贵阳h5网站建设wordpress不显示图片
  • 郑州网站建设方案书抖音流量推广神器软件
  • 做网站和彩票的同步开奖怎么做手机下载视频网站模板下载
  • 建设网站的基本流程是什么小程序商店头像
  • 网站空间换了 使用原有域名二级域名网址查询
  • 花都网站设计都莱芜雪野湖有什么好玩的