Appearance
如何使用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服务与第三方服务的网络