Stiahnuť Slovo .docx, ako Blob súbor z Uhlové na mobilných zariadeniach

0

Otázka

Snažím sa stiahnuť .docx súbor z REST API (.NET Core FileContentResult) v Uhlovej aplikácie. Všetko je v poriadku, na POČÍTAČI, ale tam je problém so stiahnutím .docx súbory vo VMware Workspace JEDEN Webový prehliadač (nemal skúste štandardné prehliadače, ako napríklad Chrome alebo Safari, vyzerá to, že tam je práve Android WebView). Je to firma aplikácie a tento prehliadač je len jeden povolené.

Problém je iba s .docx súbory. Súbory, ako napríklad PDF, .doc a .xlsx (vytvorené ClosedXML) sú v poriadku.

ZVYŠOK volania rozhrania API (tiež sa snažil s 'arraybuffer" namiesto "blob" a vytvorili objekt Blob v klientovi, ale problém pretrváva)

this.httpClient.get(requestUrl, {
  responseType: 'blob',
  observe: 'response'
});

Potom som uložiť reakcia tela s FileSaver.

generateDocument(file: string | Blob, name: string): void {
  FileSaver.saveAs(file, name);
}
  • Tiež som sa snažil prístup, ktorý vytvára odkaz a kliknutím na neho (nefunguje).
  • Riešenie s použitím okna.otvorte(blobUrl) nefunguje.

ÚPRAVA:

  • Mám informácie, že to nie je práca na všetkých v iOS s istom prehliadači. Užívatelia dostať chybové hlásenie "Odkaz je neplatný."

Môže mi niekto pomôcť s týmto problémom? Vďaka.

android angular blob docx
2021-11-23 17:22:43
1

Najlepšiu odpoveď

0

Ak si môžete prevziať, získať ArrayBuffertoto by mohol byť použitý, ak chcete spustiť preberanie, s tými bajtov:

Test tu: https://batman.dev/static/70085191/

async function downloadUrl(url) {
  downloadBuffer(
    await (await fetch(url)).arrayBuffer()
  )
}

function downloadBuffer(arrayBuffer) {
  const a = document.createElement('a')
  a.href = URL.createObjectURL(new Blob(
    [ arrayBuffer ],
    { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }
  ))
  a.download = 'my-file.docx'
  a.click()
}

2021-11-26 19:43:03

Skúšal som to a to nefungovalo. Mobilný telefón nemôžem otvoriť dokument.
Viktor 36

Skúste pracovných test som pridal. To stiahnuť a otvoril na môj Chrome Android telefón.
AnthumChris

To funguje v Chrome, ale nie v VMware Workspace JEDEN Web. Urobil som test stránky s rôznymi riešeniami a testované v Chrome pre Android a Safari na iOS. Všetko je v poriadku v týchto prehliadačov.
Viktor 36

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................