Ke Stažení Slova .docx jako Blob soubor z Úhlové na mobilních zařízeních

0

Otázka

Snažím se stáhnout .docx soubor z REST API (.NET Jádro FileContentResult) v Úhlové aplikace. Všechno je v pořádku na PC, ale tam je problém s stahování .docx soubory ve VMware Workspace JEDEN Webový prohlížeč (nesnažil standardních prohlížečích, jako je Chrome nebo Safari, to vypadá, že tam je jen Android WebView). To je aplikace společnosti a tento prohlížeč je jediný povolený.

Problém je pouze s .docx soubory. Soubory, jako je PDF, .doc a .xlsx (vytvořené ClosedXML) jsou v pořádku.

ZBYTEK volání API (také pokusil s arraybuffer' místo 'blob' a vytvořil Blob objekt v klientovi, ale problém přetrvává)

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

Pak jsem ušetřit reakci těla s FileSaver.

generateDocument(file: string | Blob, name: string): void {
  FileSaver.saveAs(file, name);
}
  • Zkoušel jsem i přístup, který vytváří odkaz a klikněte na něj (to nefunguje).
  • Řešení s pomocí okna.otevřít(blobUrl) nefunguje.

EDIT:

  • Mám informace, že to nefunguje v iOS se stejným prohlížeče. Uživatelé se chybová zpráva "Odkaz je neplatný."

Může mi někdo pomoci s tímto problémem? Díky.

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

Nejlepší odpověď

0

Pokud můžete získat získat ArrayBuffertoto by mohly být použity k zahájení stahování s těmi bajtů:

Test zde: 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

Zkoušel jsem to a nefungovalo to. Mobilní telefon nemůže otevřít dokument.
Viktor 36

Zkuste pracovní test jsem přidal. To stáhnul a otevřel na můj Android, Chrome telefonu.
AnthumChris

To funguje v Chrome, ale ne ve VMware Workspace JEDEN Web. Udělal jsem testovací stránku s různými řešeními a testováno v Chrome pro Android a Safari pro iOS. Všechno je v pořádku v těchto prohlížečích.
Viktor 36

V jiných jazycích

Tato stránka je v jiných jazycích

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