download-file.uvue 4.5 KB
Newer Older
1
<template>
DCloud-WZF's avatar
DCloud-WZF 已提交
2 3
  <!-- #ifdef APP -->
  <scroll-view style="flex: 1">
4
  <!-- #endif -->
DCloud-WZF's avatar
DCloud-WZF 已提交
5 6
    <view>
      <page-head :title="title"></page-head>
W
wanganxp 已提交
7 8 9
      <view>
        <view v-if="imageSrc">
          <image class="img" :src="imageSrc" mode="aspectFit" />
DCloud-WZF's avatar
DCloud-WZF 已提交
10
        </view>
W
wanganxp 已提交
11
        <view v-else style="margin: 10px;">
Y
yurj26 已提交
12
          <text class="uni-hello-text">点击按钮下载服务端示例图片(下载网络文件到本地临时目录)</text>
W
wanganxp 已提交
13
          <button type="primary" @tap="downloadImage">下载</button>
DCloud-WZF's avatar
DCloud-WZF 已提交
14 15 16
        </view>
      </view>
    </view>
17
  <!-- #ifdef APP -->
DCloud-WZF's avatar
DCloud-WZF 已提交
18 19
  </scroll-view>
  <!-- #endif -->
20
</template>
21
<script>
22 23

  // #ifdef APP
24 25 26 27
  import {
    testInovkeDownloadFile,
    CommonOptions
  } from '@/uni_modules/test-invoke-network-api'
28
  // #endif
29

30 31 32 33 34 35 36 37 38 39 40 41 42
  export default {
    data() {
      return {
        title: 'downloadFile',
        imageSrc: '',
        task: null as DownloadTask | null,
        //自动化测试例专用
        jest_result: false
      }
    },
    onLoad() {
    },
    onUnload() {
W
wanganxp 已提交
43
      // this.imageSrc = '';
44 45 46 47 48 49 50 51 52 53
      uni.hideLoading();
      this.task?.abort();
    },
    methods: {
      downloadImage: function () {
        uni.showLoading({
          title: '下载中'
        })
        var self = this
        this.task = uni.downloadFile({
雪洛's avatar
雪洛 已提交
54
          url: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app.png",
55
          success: (res) => {
W
wanganxp 已提交
56
            console.log('downloadFile success, res is', res.tempFilePath)
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
57 58
            self.imageSrc = res.tempFilePath;
            uni.hideLoading();
59 60
          },
          fail: (err) => {
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
61 62
            console.log('downloadFile fail, err is:', err)
            uni.hideLoading();
63 64 65
          }
        });
        this.task?.onProgressUpdate((update) => {
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
66
          console.log("progress : ", update.progress);
67 68 69 70 71
        })
      },
      //自动化测试例专用
      jest_downloadFile() {
        uni.downloadFile({
雪洛's avatar
雪洛 已提交
72
          url: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app.png",
73 74 75 76 77 78 79
          success: () => {
            this.jest_result = true
          },
          fail: () => {
            this.jest_result = false
          }
        });
80 81
      },

82 83 84 85 86 87 88 89 90 91 92 93 94
      jest_downloadFile_with_uni_env() {
        uni.downloadFile({
          url: "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app.png",
          filePath: `${uni.env.CACHE_PATH}/a/b/`,
          success: () => {
            this.jest_result = true
          },
          fail: () => {
            this.jest_result = false
          }
        });
      },

95 96
      jest_set_cookie(){
        uni.request({
雪洛's avatar
雪洛 已提交
97
          url: "https://request.dcloud.net.cn/api/http/header/setCookie",
98 99 100
          method: "GET",
          timeout: 6000,
          sslVerify: false,
雪洛's avatar
雪洛 已提交
101
          withCredentials: true,
102 103 104 105 106 107 108 109 110 111 112 113
          firstIpv4: false,
          success: () => {
            this.jest_cookie_download(true)
          },
          fail: () => {
            this.jest_result = false;
          },
        });
      },

      jest_delete_cookie(){
        uni.request({
雪洛's avatar
雪洛 已提交
114
          url: "https://request.dcloud.net.cn/api/http/header/deleteCookie",
115 116 117
          method: "GET",
          timeout: 6000,
          sslVerify: false,
雪洛's avatar
雪洛 已提交
118
          withCredentials: true,
119 120 121 122 123 124 125 126 127 128 129
          firstIpv4: false,
          success: () => {
            this.jest_cookie_download(false)
          },
          fail: () => {
            this.jest_result = false;
          },
        });
      },
      jest_cookie_download(needCookie: boolean){
        uni.downloadFile({
雪洛's avatar
雪洛 已提交
130
          url: "https://request.dcloud.net.cn/api/http/header/download",
131 132 133 134 135 136 137
          success: () => {
            this.jest_result = needCookie ? true : false;
          },
          fail: () => {
            this.jest_result = needCookie ? false : true;
          }
        });
138 139
      },
      jest_uts_module_invoked(){
140
        // #ifdef APP
141 142 143 144 145 146 147 148
        testInovkeDownloadFile({
          success:(res: any)=>{
            this.jest_result = true
          },
          fail:(err: any)=>{
            this.jest_result = false
          }
        } as CommonOptions)
149
        // #endif
150 151 152 153 154 155 156 157 158 159 160
      },
      jest_special_characters_download(){
        uni.downloadFile({
          url: "https://web-ext-storage.dcloud.net.cn/hello-uni-app-x/1789834995055525889-你好%23你好.png",
          success: (res: DownloadFileSuccess) => {
            this.jest_result = true;
          },
          fail: () => {
            this.jest_result = false;
          }
        });
161
      }
162
    }
163
  }
164 165 166
</script>

<style>
167 168 169
  .img {
    margin: 0 auto;
  }
W
wanganxp 已提交
170
</style>