web前端在线预览,编辑word文件的方法汇总(2021-7-14更新)

9 篇文章 5 订阅
9 篇文章 0 订阅

web前端在线预览,编辑word文件的方法汇总(2021-7-14更新)

声明:如果怕收费或者其他的什么,请直接点击第5点,让后端大大配合你实现

首先我要声明,纯前端无法实现doc文档预览,只能通过其他手段(如第三方,或者自己通过和后端大大沟通)

预览

1.微软提供的 office在线预览地址:

https://view.officeapps.live.com/op/view.aspx?src=你的地址(一定得是全路径,带http的那种)

PS:不知道收不收费

2.docx

官网:http://view.xdocin.com/

http://view.xdocin.com/xdoc?_xdoc=你的地址(一定得是全路径,带http的那种)

PS:这个肯定收费,不要问我为什么知道
在这里插入图片描述

3. officeweb365.com

官网:officeweb365.com
可收费,可不收费
使用方法在官网里面
sdfdsf

4.kkFileView

官网 kkFileView
看样子还不错,只需要运维大大配合部署一下环境( Docker环境 )

虽然说Docker环境容易部署吧,但是我们的环境是原生java环境(老老老早以前的)为了这个简单的功能去直接部署服务器环境,而且还带着搞坏服务器的代价,不值得

4.冰蓝科技

官网 冰蓝科技

用法:

  1. 去官网注册账号

  2. 登录

  3. 找到这两个id复制到技术大大给你的demo对应位置中在这里插入图片描述

  4. 在html里搜索 ‘urlString’ 这个变量,把文件复制进去

  5. 保存,浏览器打开

本人亲测可用,免费预览,不计次数,实现编辑功能的话往下看

5. 后端大大配合你实现

(实现思路,既然doc看不了,那么直接给他pdf)

  1. 前端上传文件
  2. 后端接收的时候,将doc转化为pdf(因为我们后端是java,有直接把doc转化为pdf的jar包)
  3. 后端连同doc和pdf一起保存
  4. 然后前端访问这个doc的时候让他请求接口,直接返回pdf路径即可

如果不想用pdf,那么就,doc=>pdf=>png/jpg/jpeg 把他转化为图片格式给前端返回

6. (推荐)WPS开放平台 https://open.wps.cn/docs/cloud/case-solution(无限制预览次数,但是需要后端去调用)

wps薅羊毛版本:支持20M以内的文档在线预览(免费预览)要求,不能有超过20人同一秒打开同一个文档
在这里插入图片描述

编辑

最终解决方案,找专业的人来,WPS开放平台 (网页编辑office),专业office团队,更新有保障(价格自己咨询,可以薅羊毛)

wps(薅羊毛版本:支持20M以内的文档在线编辑,且同一时间打开同一个文档的并发量是20人,完全符合要求,而且支持多人在线编辑) https://open.wps.cn/docs/cloud/case-solution

第三方word差不多都是这个流程

  1. 私有化部署
    1.1 预览
    直接获取到本地文件服务器的文件路径解析
    1.2 保存
    获取到本地文件服务器的文件流,解析,然后保存的时候再把这个文件进行替换
  2. 公有云
    2.1 预览
    获取到A服务器的文件路径解析(有的第三方需要下载到项目所在服务器才可预览)
    2.2 保存
    从A服务器下载到当前项目所在服务器,然后打开,保存的时候,会生成一个文件流,然后将这个文件流提交到A服务器然后匹配文件名进行覆盖

1. wps开放平台(极力推荐这个)专业的事情找专业的人干,前端只负责拿到后端返回的url地址,然后展示即可,主要是由后端主刀https://open.wps.cn/docs/cloud/case-solution

优点:这就不用多说了吧?你在wps软件上能干的他都能,而且支持多个人同时编辑一个文档(盲猜上限是20个人),重点是。可薅羊毛,无限制编辑次数限制无限制编辑次数限制无限制编辑次数限制
缺点:让后端大大掉头发,

2.冰蓝科技官网 https://www.e-iceblue.cn/(说的这么详细是因为之前薅过羊毛,然后发现不行换成wps了,大家看看就行了)

优点:可薅羊毛(1w次)
缺点:会出现行高或者排版和字体问题,图片混乱的问题,而且打开文件较慢(字体问题可通过私有化部署解决)

  1. 方法一:花8w私有化部署
  2. 方法二:直接使用人家的服务器(所有文件都存在阿里云上,不用担心安全性的问题)

我们是这么干的(就是都用人家那边的)首先把已有的文件全部放在他的服务器上(空间买了,要不然2g扛不住),然后预览的时候调他的服务器上的文件地址,然后保存也是调他那边的(貌似他保存的时候默认就是调人家的,只有自己写了接口后才会走接口)(其实他这个预览给你和编辑给你都一样,只是两个参数不一样,建议分两个html写)

本来我们是想直接用七牛云那边的文件的预览,然后保存的时候后端自定义回调接口,然后直接存七牛云上并且覆盖(肯定没问题,技术支持大大也说了这样可以实现,都用自己的,只不过编辑工具用人家的,这样的话就不用经过人家的服务器,那1w次可能永远是1w次 {我猜的} ,but:在让后端写接口的时候)
在这里插入图片描述
这里的url就是后端给你的接口地址,然后传两个参数一个是filename,一个是fileuri,但是这两个…后端保存的时候需要拿到file,而不是这些,emmmmm所以还是放弃了,but2,
在这里插入图片描述
这玩意可能就是那个文件,emmmmmmmmmmm,但是真的搞不懂

还有啊,你不可能说是 预览用七牛云的,然后ctrl+s 保存到人家服务器上,这做不到

流程:

(去冰蓝科技官网注册账号,注册成功后在手机上激活,然后登陆)即可获得免费的1w次的编辑次数,(预览不要次数,预览不要次数,预览不要次数,预览不要次数,预览不要次数,预览不要次数,而且技术支持大大人还不错,技术支持大大qq:2790765778,1w次编辑次数用完之后~就得收费咯,当然,如果你想薅羊毛的话…往死里注册账号就行了)

在这里插入图片描述

  1. 注册账号 邮箱激活账号,登陆
    在这里插入图片描述

  2. 拿到这两个id

  3. 点击帮助文档,但是这个文档和实际的有出入,可以咨询冰蓝科技的技术支持大大,本人遇到的基础的bug 有:
    1.1 先放一个a.doc,然后保存,刷新,然后放一个b.ppt,保存刷新后内容还是a.doc,这个bug联系技术支持大大,他会帮你解决
    1.2 把只读属性 onReady 改成false后,任然可以编辑,然后咨询了技术支持大大后,发现

在这里插入图片描述
这个mode属性优先级要比onReady 优先级高,然后把这个mode属性改成 view 即可

  1. 联系技术大大,让他给你完整的html的demo即可
    在这里插入图片描述

3. onlyOffice

emmmm,怎么说呢,闲鱼上有卖的,99大洋远程部署,但是我发现了csdn也有配置教程 ,如果商业用的话,会造成版权问题,还是算了吧
csdn博客链接地址 :

点我跳转或者复制以下链接

https://blog.csdn.net/yuchenff/article/details/103611401?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160574930019724842949520%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160574930019724842949520&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-103611401.first_rank_ecpm_v3_pc_rank_v2&utm_term=onlyOffice&spm=1018.2118.3001.4449

缺点

  1. 要花钱
  2. 同样存在行高和字体问题,需要私有化部署能解决字体问题,但是行高没办法,网页的空格和回车和软件的空格和回车不能相提并论
  3. 需要两台服务器,而且配置docker环境的时候,运维大大告诉我配置不上~~,很难受(应该是我们只有一台服务器的原因)

4. pageoffice :(果断放弃,原因1:需要用户下控件,2.配置太麻烦,3.配置成功后它是以window系统弹窗的形式,还不如直接打开微软的wold软件进行编辑)

而且pageoffice会出现以下几点问题:

  1. pageoffice是基于本地office的基础上来弄的一个插件,所以会和本地的office或者WPS冲突,所以需要用户手动杀死office或者WPS后台进程(不现实)
  2. 会出现反复安装插件的问题,可能是因为用户安装了杀毒软件,把这个插件拦住了,需要手动放开
  3. 出现编码问题(这个问题是由于把doc后缀名直接改错了docx造成的)
    PS:给我的体验不是很友好

5. weboffice:(他还是要下控件果断放弃)

致命问题:需要用户手动在C盘创建文件夹,也就是让用户去配合这个插件进行操作,而且操作比较繁琐,用户体验极差
附图:
在这里插入图片描述

6. ntkoOffice:(没研究过)

7. office online serve 微软的,没了解过

8. ozzoffice (没研究过)

9. 自己开发一个word(狗头保命)

emmmm,总的来说,这个需求不是很现实,而且某些第三方还必须要IE浏览器,前端程序员都知道IE浏览器意味着什么,我们项目是VUE2.0,3.0,IE还跑不起来,唉,太难了

以上

  • 51
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 41
    评论
WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/excel/wps编辑辅助控件,可以实现: 1.在线编辑Word、Excel、PPT、WPS... ... 2.全面支持MS Office的界面定制,包括对于Office2007的全面支持 3.修订留痕 4.限制打印、保存、复制 5.直接保存到服务器,支持标准Http Post协议 6.强大的书签管理 7.套红、文档保护 8.模板管理 9.其他功能扩展 10.提供开发论坛http://www.dianju.cn/forum/,在其中提供软件更新及问题回答服务 本控件不同于其它同类软件,不是基于微软的开放源码DsoFramer,也不基于OLE,可以解决DsoFramer及其派生产品的一些稳定性问题 本控件不同于其它同类收费软件,本控件完全免费和界面完全可控制。 点聚会定期更新本控件,并解答论坛上的询问,免费不代表免服务,每一个使用者都能得到及时服务。 安装包内包含: 1.WebOffice安装包(仅包含WebOffice控件) 2.WebOffice接口SDK 3.WebOffice网页接口调用例子 4.DES手写及签章系统(Office签章系统)试用版。 5.演示章及证书 6.点聚产品白皮书 WebOffice组件可以无缝集成点聚公司的电子签章和手写审批类产品。 点聚信息(http://www.dianju.com.cn)是国内专业的安全和文档中间件软件制造商。公司注重自主知识产权产品的研发,始终坚持技术为本、服务为先的原则,在电子印章、手写签批、安全版式文档和电子表单等领域处于国内领先水平。 点聚自主研发的版式文件系统独创性的将整个系统缩小为1M大小的组件,并在多项重要技术指标上领先PDF和其它版式格式。 点聚支持全系列手写及签章解决方案,可同时提供Office签章系统(Word/Excel/Wps)、网页签章系统、版式签章系统. 点聚是国内唯一一家同时拥有国密和军密资质的电子印章及安全文档产品提供商(国密、军密、公安部销售许可)。
版本修改记录: V2.2.0.2修改: 修改了HttpPost相对路径的一些问题。 V2.2.0.0增加: [id(0x00010041), helpstring("Get Rev Index")] HRESULT GetRevCount( [out,retval] long * pbool); [id(0x00010042), helpstring("Get Rev Index Info")] HRESULT GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); [id(0x00010043), helpstring("Set Doc Prop")] HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); [id(0x00010044), helpstring("Set Doc Variable")] HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); [id(0x00010045), helpstring("Save page To Doc")] HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- LoadDso.js var s = "" s += "" s += "" document.write(s) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- 接口文档: /* 1.新建 */ //新建Word document.all.FramerControl1.CreateNew("Word.Document"); //新建Excel document.all.FramerControl1.CreateNew("Excel.Sheet"); /* 2.打开文件 */ //打开制定的本地文件 document.all.FramerControl1.Open("C:\\TestBook.xls"); //制定用Word来打开c:\plain.txt文件 document.all.FramerControl1.Open("C:\\Plain.txt",false, "Word.Document"); //打开服务器的文件 document.all.FramerControl1.Open "https://secureserver/test/mytest.asp?id=123",true, "Excel.Sheet", "MyUserAccount", "MyPassword"); //打开服务器的文件 document.all.FramerControl1.Open("http://localhost/1.doc", true); /* 3.保存文件 */ //到本地 document.all.FramerControl1.Save("c:\\1.doc",true); //服务器 /*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据 bool HttpInit(); bool HttpAddPostString(BSTR strName, BSTR strValue); bool HttpAddPostCurrFile(BSTR strFileID, BSTR strFileName); BSTR HttpPost(BSTR bstr); */ //初始化Http引擎 document.all.FramerControl1.HttpInit(); //增加Post变量 document.all.FramerControl1.HttpAddPostString("RecordID","20060102200"); document.all.FramerControl1.HttpAddPostString("UserID","李局长"); //上传打开的文件 document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc"); //执行上传动作 document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp"); /* 4.修订留痕 */ //进入留痕状态 document.all.FramerControl1.SetTrackRevisions(1); //进入非留痕状态 document.all.FramerControl1.SetTrackRevisions(0); //接受当前修订 document.all.FramerControl1.SetTrackRevisions(4); /* 5.设置当前用户 */ document.all.FramerControl1.SetCurrUserName("张三"); /* 6.设置当前时间(笔迹留痕会显示("Like 2006:02:07 11:11:11") */ document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11"); /* 7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了 SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName) strFieldName:书签名 strValue:要设置的值 strCmdOrSheetName: 命令 ::ADDMARK:: 添加BookMark ::DELMARK:: 删除这个BookMark ::GETMARK:: 定位到这个BookMark ::FILE:: 插入的是文件 ::JPG:: 插入的是图片 一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。 */ //在当前WORD位置插入标签,标签名为"book1",数值为"test" document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::"); //设置书签"Time",数值为"2006-03-16 22:22:22" document.all.FramerControl1.SetFieldValue("Time","2006-03-16 22:22:22",""); //在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc" 这样,红头就自动插进去了 document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::"); /* 8.设置菜单显示情况 BOOL SetMenuDisplay(long lMenuFlag) lMenuFlag为以下数值的组合 #define MNU_NEW 0x01 #define MNU_OPEN 0x02 #define MNU_CLOSE 0x04 #define MNU_SAVE 0x08 #define MNU_SAVEAS 0x16 #define MNU_PGSETUP 0x64 #define MNU_PRINT 0x256 #define MNU_PROPS 0x32 #define MNU_PRINTPV 0x126 */ //只有“新建”菜单可用 document.all.FramerControl1..SetMenuDisplay(1); //只有“打开”菜单可用 document.all.FramerControl1.SetMenuDisplay(2); //只有“打开”和“新建”菜单可用 document.all.FramerControl1.SetMenuDisplay(3); /* 9.保护文档和解保护文档 lProOrUn:1:保护文档;0:解除保护 lProType: wdNoProtection = -1, wdAllowOnlyRevisions = 0, wdAllowOnlyComments = 1, wdAllowOnlyFormFields = 2 strProPWD:密码 */ //完全保护文档,密码为"pwd" document.all.FramerControl1.ProtectDoc(1,1,"pwd"); //解除文档保护 document.all.FramerControl1.ProtectDoc(0,1,"pwd"); /* 10.显示或隐藏修订内容 ShowRevisions(long nNewValue) nNewValue = 0 则隐藏修订 = 1 则显示修订 */ //显示修订留痕 document.all.FramerControl1.ShowRevisions(1); //隐藏修订留痕 document.all.FramerControl1.ShowRevisions(0); /* 11.插入合并文件, strFieldPath 文件路径,可以是http,ftp的路径 pPos = 0 //当前鼠标位置 1;文件开头 2;文件末尾 pPos的第4位为1的时候,代表插入的是图片 InSertFile(BSTR strFieldPath, long lPos) */ //文件头部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1); //文件尾部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2); //当前光标位置插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0); //文件头部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9); //文件尾部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10); //当前光标位置插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8); /* 0x31. 文档另存为 HRESULT SaveAs([in] VARIANT strFileName, [in] VARIANT dwFileFormat, [out,retval] long* pbool); 参数: strFileName:文件本地路径,如c:\\11.doc dwFileFormat: 文件格式 dwFileFormat的数值为: Excel: Type enum XlFileFormat { xlAddIn = 18, xlCSV = 6, xlCSVMac = 22, xlCSVMSDOS = 24, xlCSVWindows = 23, xlDBF2 = 7, xlDBF3 = 8, xlDBF4 = 11, xlDIF = 9, xlExcel2 = 16, xlExcel2FarEast = 27, xlExcel3 = 29, xlExcel4 = 33, xlExcel5 = 39, xlExcel7 = 39, xlExcel9795 = 43, xlExcel4Workbook = 35, xlIntlAddIn = 26, xlIntlMacro = 25, xlWorkbookNormal = -4143, xlSYLK = 2, xlTemplate = 17, xlCurrentPlatformText = -4158, xlTextMac = 19, xlTextMSDOS = 21, xlTextPrinter = 36, xlTextWindows = 20, xlWJ2WD1 = 14, xlWK1 = 5, xlWK1ALL = 31, xlWK1FMT = 30, xlWK3 = 15, xlWK4 = 38, xlWK3FM3 = 32, xlWKS = 4, xlWorks2FarEast = 28, xlWQ1 = 34, xlWJ3 = 40, xlWJ3FJ3 = 41, xlUnicodeText = 42, xlHtml = 44 }; Word: Type enum WdSaveFormat { wdFormatDocument = 0, wdFormatTemplate = 1, wdFormatText = 2, wdFormatTextLineBreaks = 3, wdFormatDOSText = 4, wdFormatDOSTextLineBreaks = 5, wdFormatRTF = 6, wdFormatUnicodeText = 7, wdFormatEncodedText = 7, wdFormatHTML = 8 }; PPT: enum PpSaveAsFileType { ppSaveAsPresentation = 1, ppSaveAsPowerPoint7 = 2, ppSaveAsPowerPoint4 = 3, ppSaveAsPowerPoint3 = 4, ppSaveAsTemplate = 5, ppSaveAsRTF = 6, ppSaveAsShow = 7, ppSaveAsAddIn = 8, ppSaveAsPowerPoint4FarEast = 10, ppSaveAsDefault = 11, ppSaveAsHTML = 12, ppSaveAsHTMLv3 = 13, ppSaveAsHTMLDual = 14, ppSaveAsMetaFile = 15, ppSaveAsGIF = 16, ppSaveAsJPG = 17, ppSaveAsPNG = 18, ppSaveAsBMP = 19 }; */ /* 0x32. 删除本地文件 HRESULT DeleteLocalFile([in] BSTR strFilePath); 参数: strFileName:文件本地路径,如c:\\11.doc */ /* 0x33.创建临时文件 HRESULT GetTempFilePath([out,retval] BSTR* strValue); 返回: 临时文件的路径地址。使用完后,用DeleteLocalFile 删除 */ /* 0x34.设置文档显示模式 HRESULT ShowView([in] long dwViewType, [out,retval] long * pbool); dwViewType的可取值为: enum WdViewType { wdNormalView = 1, wdOutlineView = 2, wdPrintView = 3, wdPrintPreview = 4, wdMasterView = 5, //这个是大纲 wdWebView = 6 }; */ //大纲模式 document.all.FramerControl1.ShowView(5); /* 0x39:下载远程文件 HRESULT DownloadFile( [in] BSTR strRemoteFile, [in] BSTR strLocalFile, [out,retval] BSTR* strValue); 参数: strRemoteFile:远程路径地址,http or Ftp strLocalFile: 本地保存地址,if strLocalFile == NULL then Create Temp File and return TempFile's Path */ /* 0x40:增加Http上传时候的,附加其他文件 HRESULT HttpAddPostFile([in] BSTR strFileID, [in] BSTR strFileName, [out,retval] long* pbool); 参数: strFileID:文件的ID,供服务器端页面解析 strFileName: 本地文件地址 */ /* 0x41,0x42.获取详细的修订信息。 GetRevCount( [out,retval] long * pbool); GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); 例子如下 */ var vCount; vCount = document.all.FramerControl1.GetRevCount(); alert(vCount); var vOpt = 0; var vDate; for(var i=1; i<= vCount; i++){ vOpt = document.all.FramerControl1.GetRevInfo(i,2); if("1" == vOpt){ vOpt = "插入"; }else if("2" == vOpt){ vOpt = "删除"; }else{ vOpt = "未知操作"; } vDate = new String(document.all.FramerControl1.GetRevInfo(i,1)); vDate = parseFloat(vDate); alert(vDate); dateObj = new Date(vDate); alert(dateObj.getYear() + "年" + dateObj.getMonth() + 1 + "月" + dateObj.getDate() +"日" + dateObj.getHours() +"时" + dateObj.getMinutes() +"分" + dateObj.getSeconds() +"秒" ); alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.FramerControl1.GetRevInfo(i,3)); } /* 0x43.设置基本信息: HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); 1.设置文件只读密码 SetValue("password","::DOCPROP:PassWord"); 2.设置文件修改密码 SetValue("password","::DOCPROP:WritePW"); 返回值: 0 正确 -1:不支持此命令,请确定您的第二个参数没有传错 -127:异常 */ //设置文件只读密码 document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord"); //设置文件修改密码 document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW"); /* 0x44.设置文档变量,这个很少能用到 HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); strVarName: 变量名 strVlaue:变量值 lOpt: 操作类型, 按位 第一位为1: 表示update域关联的 第二位为1: 表示如果没有这个变量则添加 第三位为1: 未来支持 return: 0:OK -127:异常 */ /* 0x45: 分页保存 HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); strLocalFile:本地路径 lPageNum:页数 */
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值