fix: request download and upload not support responseReturn (#5456)

* fix: request download and upload not support `responseReturn`

* docs: update

* fix: type of request client upload result
This commit is contained in:
Netfan
2025-01-22 00:59:10 +08:00
committed by GitHub
parent 195ceec9b4
commit e225159cce
7 changed files with 93 additions and 28 deletions

View File

@@ -0,0 +1,28 @@
import type { RequestResponse } from '@vben/request';
import { requestClient } from '../request';
/**
* 下载文件获取Blob
* @returns Blob
*/
async function downloadFile1() {
return requestClient.download<Blob>(
'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
);
}
/**
* 下载文件获取完整的Response
* @returns RequestResponse<Blob>
*/
async function downloadFile2() {
return requestClient.download<RequestResponse<Blob>>(
'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
{
responseReturn: 'raw',
},
);
}
export { downloadFile1, downloadFile2 };

View File

@@ -1,4 +1,6 @@
<script setup lang="ts">
import { ref } from 'vue';
import { Page } from '@vben/common-ui';
import {
downloadFileFromBase64,
@@ -9,7 +11,23 @@ import {
import { Button, Card } from 'ant-design-vue';
import { downloadFile1, downloadFile2 } from '#/api/examples/download';
import imageBase64 from './base64';
const downloadResult = ref('');
function getBlob() {
downloadFile1().then((res) => {
downloadResult.value = `获取Blob成功长度${res.size}`;
});
}
function getResponse() {
downloadFile2().then((res) => {
downloadResult.value = `获取Response成功headers${JSON.stringify(res.headers)},长度:${res.data.size}`;
});
}
</script>
<template>
@@ -70,5 +88,13 @@ import imageBase64 from './base64';
Download TxT
</Button>
</Card>
<Card class="my-5" title="Request download">
<Button type="primary" @click="getBlob"> 获取Blob </Button>
<Button type="primary" class="ml-4" @click="getResponse">
获取Response
</Button>
<div class="mt-4">{{ downloadResult }}</div>
</Card>
</Page>
</template>