Bladeren bron

fix sometimes cannot open the file

tags/Baseline_30082024_FRONTEND_UAT
cyril.tsui 1 jaar geleden
bovenliggende
commit
1f69f582be
1 gewijzigde bestanden met toevoegingen van 34 en 5 verwijderingen
  1. +34
    -5
      src/app/utils/fetchUtil.ts

+ 34
- 5
src/app/utils/fetchUtil.ts Bestand weergeven

@@ -61,14 +61,43 @@ export async function serverFetchBlob<T>(...args: FetchParams) {
const response = await serverFetch(...args);

if (response.ok) {
const body = response.body
// console.log(body)
// console.log(body?.tee()[0].getReader())


const reader = body?.getReader()
let finalUInt8Array = new Uint8Array()
let done = false

// Read some more, and call this function again
while (!done) {
// Result objects contain two properties:
// done - true if the stream has already given you all its data.
// value - some data. Always undefined when done is true.
const read = await reader?.read()

if (read?.done) {
done = true
} else {
// value for fetch streams is a Uint8Array
finalUInt8Array = new Uint8Array(read?.value.length!!)
finalUInt8Array.set(read?.value!!)
}
}

// const bodyRead = await reader?.read()
// const bodyValue = bodyRead?.value

// const blob = await response.blob()
// const blobText = await blob.text();
// const blobType = await blob.type;
const readBody = await response.body?.getReader().read()
const bodyValue = readBody!!.value!!
console.log(bodyValue)
return {filename: response.headers.get("filename"), blobValue: bodyValue} as T;

// console.log(bodyReader)
// console.log(finalUInt8Array)
// console.log(bodyValue)

return { filename: response.headers.get("filename"), blobValue: finalUInt8Array } as T;
} else {
switch (response.status) {
case 401:


Laden…
Annuleren
Opslaan