Download Cuvânt .docx fel de fișier Blob din Unghiulare pe dispozitive mobile

0

Problema

Am încercat pentru a descărca .docx fișier de REST API (.NET Core FileContentResult) în Unghiulare aplicație. Totul este de lucru bine pe PC, dar există o problemă cu descărcarea .docx fișiere în VMware spațiu de Lucru UN Web browser-ul (n-am încercat standard browsere ca Chrome sau Safari, se pare ca nu este doar Android WebView). Este compania potrivită și acest browser este singurul care are voie.

Problema este doar cu .fișiere docx. Fișierele, cum ar fi PDF, .doc și .xlsx (creat de ClosedXML) sunt de lucru bine.

REST API call (de asemenea, a încercat cu arraybuffer "în loc de "blob' și a creat Blob obiect în client, dar problema persistă)

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

Apoi m-am salva de răspuns a organismului cu clase filesaver.

generateDocument(file: string | Blob, name: string): void {
  FileSaver.saveAs(file, name);
}
  • De asemenea, am încercat o abordare care creează link-ul și faceți clic pe ea (nu funcționează).
  • Soluție cu ajutorul ferestrei.deschis(blobUrl) nu este de lucru.

EDIT:

  • Am informații că nu este de lucru la toate, în iOS, cu acelasi browser. Utilizatorii primesc un mesaj de eroare "Link-ul este invalid."

Ma poate ajuta cineva cu aceasta problema? Multumesc.

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

Cel mai bun răspuns

0

Dacă puteți prelua obține o ArrayBuffer, acest lucru ar putea fi folosite pentru a iniția descărcarea cu aceste bytes:

Testul aici: 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

Am încercat asta și nu a mers. Telefonul mobil nu a putut deschide documentul.
Viktor 36

Încercați de lucru test i-am adăugat. Descărcat și deschis pe Android Chrome telefon.
AnthumChris

Acesta funcționează bine în Chrome, dar nu în VMware spațiu de Lucru UNA Web. Mi-am făcut pagină de test cu diferite soluții și testate în Chrome pe Android și Safari pe iOS. Totul este de lucru bine, în aceste browsere.
Viktor 36

În alte limbi

Această pagină este în alte limbi

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