Skip to content
本页目录

如何使用wps预览文件

场景说明

1、fbp接口中文件通常都是用存储来存放的,存储又是根据应用配置和授权站点决定的;fbp项目中如果需要wps来预览文件,需要在wps的回调接口(文件信息)中提供获取文件的下载地址以便wps能获取文件内容;

wps直接访问fbp的接口时,没经过站点也没有在设置请求头,因此该fbp接口运行时会缺乏上下文信息(站点、站点应用的资源信息【DSC、参数等】

因此平台提供了$dl_token(siteId)函数,产生token,业务上以fbp_dl_token为参数key,生成的token为值拼在接口url后,平台拦截此后会进行校验并准备上下文

2、业务上经常有第三方的文件地址需要wps预览,之前的wps预览走mas-file、mas-wps不能满足需求

【注意】: 本场景需部署wps代理jar服务,版本1.1.2(公司开发环境已部署,不同环境里使用需向wps申请访问白名单)

使用示例

1、fbp低代码接口中使用

js
view(refId,fileName){
       let storePath = '/archives/'+refId+'/'+ encodeURI(fileName); //注意中文乱码导致找不到文件(oss)
       let downLoadUrl = 'http://wh.zktx-soft.com:6435/api/' +  $api_url('fbp/', '/common/feilUpload/wpsViewDownload', 'fbp') + '?storePath=' + storePath ;
       let bootVersion =  this.$store.getters.setting.bootVersion || '1.0.0'
       this.$app.axios.request({
        url: '/fbp/app/boot/' + bootVersion + '/getWpsViewUrl',
        method: 'POST',
        data: {
           siteId: this.$store.getters.setting.siteId,  //平台内fbp接口必须提供;预览第三方文件时不传递
           wpsViewUrl: 'https://cztoa.czt.zj.gov.cn/devpreview/webOffice/general/getFBPPreviewUrl', //ST内网预览地址需改为:http://10.142.140.75:81/foa/webOffice/general/getFBPPreviewUrl?_w_third_env_code=comview
           downloadUrl: downLoadUrl,
           wpsProxy: 'http://47.97.167.23:8888/wpsproxy', //公司开发环境预览需配置,ST内网预览需置空
           _w_third_file_name:fileName
        }
       }).then((res) => {
          if(res.code == 0){
            let result = JSON.parse(res.data);
            window.open(result.data,fileName);
          }else{
            //错误提醒
          }  
       })
     }

公司开发环境:

wpsViewUrl:https://cztoa.czt.zj.gov.cn/devpreview/webOffice/general/getFBPPreviewUrl

wpsProxy: http://47.97.167.23:8888/wpsproxy

ST内网wps环境:

wpsViewUrl:http://10.142.140.75:81/foa/webOffice/general/getFBPPreviewUrl?_w_third_env_code=comview

wpsProxy: 空值或请求上不传递

wps预览文件时会通过downloadUrl传递的文件下载地址去加载文件,为了安全fbp开发的下载地址不应匿名访问,但不要修改默认的权限表达式r.default

预览第三方的文件时,siteId不传值,但需要打通wps服务与第三方服务的网络

内部资料,请勿外传