uniapp 根据第三方提供的获取附件接口打开文件

1 uni-app 的js方法

methods:{
    //预览附件
    clickAttachment(id){
        let newUrl = this.$getBaseUrl() +"/downloadThirdByCapital/"+id;//传到后台读取,id是附件id
        let suffix = url.substring(url.lastIndexOf('.')+1,url.length)
        if(suffix.toUpperCase()=="JPG"||suffix.toUpperCase()=="PNG"){
            let images=[];
            images.push(newUrl);
            uni.previewImage({
                urls: images,
                indicator: 'number',
                loop: true
            });
        }else if(suffix.toUpperCase()=="DOC"||suffix.toUpperCase()=="DOCX"||suffix.toUpperCase()=="XLS"||suffix.toUpperCase()=="XLSX"||suffix.toUpperCase()=="PPT"||suffix.toUpperCase()=="PPTX"||suffix.toUpperCase()=="PDF"){
            uni.downloadFile({
                url: newUrl,
                success: (res) => {
                    if (res.statusCode === 200) {
                        //打开文件
                        uni.openDocument({
                            filePath: res.tempFilePath,
                            fileType: suffix,
                            success: function(res) {}
                        });
                    }
                },
            });
        }
    }
}

2 调用后台接口读取输出

@PassToken
@GetMapping(value = "downloadThirdByCapital/{id}",name = "调用第三方文件接口)")
public void downloadThird(@PathVariable("id")String id, HttpServletResponse response) throws IOException {
    //第三方获取附件接口路径
    String url="https://xxxxx?id="+id;
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    // 调用下载接口进行下载
    // id 为String类型,为被调用接口参数
    ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.GET,new HttpEntity<>(headers), byte[].class);
    // 返回数据,在下面写到输出流里面(由于需要把字节数组传递给另外一个系统,所以我注释了下面的代码,不需要存本地)
    byte[] body = entity.getBody();
    // 这三行是对文件名编码,与内容编码,可以不写
    response.setContentType("application/x-msdownload");
    response.addHeader("Content-Disposition", "attachment; ");
    // 把boby数据写入输出流输出
    response.getOutputStream().write(body);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniapp是一种基于Vue.js开发的跨平台应用框架,可以让我们在一个代码库中同时开发iOS、Android和Web应用。在uniapp中引入第三方SDK是为了扩展应用的功能,让应用能够调用第三方SDK提供的服务或者使用第三方SDK提供的组件。 在uniapp中引入第三方SDK的步骤如下: 1. 下载并导入SDK:首先,我们需要从第三方SDK的官方网站或者开发者平台上下载SDK的安装包。然后,在uniapp的项目中创建一个用于存放第三方SDK文件的目录,并将SDK相关的文件复制到该目录中。 2. 注册SDK的AppKey:一些第三方SDK在使用前需要先注册一个AppKey,并在应用启动时进行初始化。我们需要根据SDK的要求,将AppKey在uniapp的配置文件中进行配置,以便SDK能够正确地识别和使用。 3. 调用SDK的接口:一旦SDK配置完毕,我们就可以在uniapp的页面或者组件中调用SDK提供接口了。根据SDK的文档或者示例代码,我们可以调用不同的接口实现具体的功能,比如发送消息、支付、分享等。 需要注意的是,由于uniapp是跨平台框架,不同平台对第三方SDK的支持程度可能会有所差异。在引入和使用第三方SDK的过程中,我们需要查阅对应平台的文档和示例代码,确保SDK能够在目标平台上正常使用。 总之,通过在uniapp中引入第三方SDK,我们可以为应用增加更多的功能和特性,丰富用户体验。同时,我们需要遵循SDK的文档和要求,正确地进行配置和调用,以确保SDK能够正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值