uniapp下载文件流

前言
使用uniapp做app项目时有下载统计信息的需求,根据查询信息接口返回文件流信息,前台需要处理成功下载文件

接口返回信息示意(这不是完整的):

PK	oY[Content_Types].xml�S�n�0����*6�PU�C���\{�X�%����]8�R�
q�cfgfW�d�q�ZCB|��|�*�*h㻆},^�{Va�^K<4�6�N�XQ�dž�9�!P��$��҆�d�c�D�j);��ѝP�g��E�M'O�ʕ����H7L�h���R���G��^�'�{��zސʮB��3�˙��h.�h�W�жF�j娄CQՠ똈���}ιL�U:D�����%އ����,�B���[�	�� ;˱�	�{N��~��X�p�ykOL��kN�V��ܿBZ~����q�� �ar��{O�PKz��q;PK	oY_rels/.rels���j�0�_���8�`�Q��2�m��4[ILb��ږ���.[K
�($}��v?�I�Q.���uӂ�h���x>=��@��p�H"�~�}�	�n����*"�H�׺؁�����8�Z�^'�#��7m{��O�3���G�u�ܓ�'��y|a�����D�	��l_EYȾ����vql3�ML�eh���*���\3�Y0���oJ׏�	:��^��}PK��z��IPK	oYdocProps/app.xmlM��
�0D�~EȽ��ADҔ���A? ��6�lB�J?ߜ���0���ͯ�)�@��׍H6���V>��$;�SC
;̢(�ra�g�l�&�e��L!y�%��49��`_���4G���F��J��Wg
�GS�b����
~�PK�|wؑ�PK	oYdocProps/core.xmlm��J�0�_%�=i��m�(Aq�D�.$Ƕ�&!�v��i�Ի$�w>N�r{z��wFW4K%��Q�n*�p�%J|Z��h��6t[��ri�B��D��\ڊ�!X�e���i$t_�D�W׀�U49ck0%��I���HOJ%�}s�,P��u���������<�n��qL�b��F<�����'���.���IͥCP�(����F�����갣u��m��؊��<;.���$�:W_�BZ$���[�K�Ss�	PK�h���PK	oYxl/sharedStrings.xml�����Q(K-*��ϳU2�3PRH�K�O��K�U

qӵP���)..QH�/�+�U22QR(��,,Mu��+)M�+�U�())���/N�H�M,��/H�ʤ��&��E���E��)���%�9�Ff����yJv6řv6%v�:�n����������t<ٱ�ٴ��{:m�K�l�Aj��{ѽ���z�/߀�$�
�f�N}���0��h]�t���k�<���P�e{?�\�.���r����}�}�\��'{g����@�{ѿ�ń���y��9��N_�l�tQ�tt��>0-�PK�R3&xPK	

前台方法:

const exportDownload = () => {
  uni.downloadFile({
    //url是你请求后端二进制流文件的接口的地址,根据你实际的项目接口地址进行替换, 多参数可使用拼接方式传递参数
    url: 'url', 
    //设置请求头,这里设置不对会报权限错误401
    header: {
      
    },
    success: (data) => {
      if (data.statusCode === 200) {
        uni.hideLoading();
        // #ifdef APP-PLUS
        //文件保存到本地
        uni.saveFile({
          tempFilePath: data.tempFilePath, //临时路径
          success: (res) => {
            // console.log('保存', res)
            uni.showToast({
              icon: 'none',
              mask: true,
              title: '文件已保存:' + res.savedFilePath, //保存路径
              duration: 1000,
            });
            setTimeout(() => {
              //打开文档查看
              uni.openDocument({
                filePath: res.savedFilePath,
                success: function (res) {
                  console.log('打开文档成功');
                }
              });
            }, 1000)
          }
        });
        // #endif
      }
    },
    fail: (err) => {
      uni.showToast({
        icon: 'none',
        mask: true,
        title: '失败请重新下载',
      });
    }
  });
}

更多信息可查看 uniapp官方地址:https://zh.uniapp.dcloud.io/api/request/network-file.html#downloadfile

简单记录如有问题或更优解还请不要吝啬的共同沟通学习,此结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值