Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Downlaod file

  1. #1

    Downlaod file

    Ciao a tutti devo scaricare ed avviare un file che si deve scaricare in download ho fatto così:

    codice:
    var apkUrl = 'https://www.radiomatese.it/Download/RadioMatese.apk';
    var fileName = apkUrl.match(/[^/]+$/i)[0];
    
    let xhttp = new XMLHttpRequest;
        xhttp.open("GET", apkUrl, true);
        xhttp.responseType = "blob";
        xhttp.onload = function(e) {
            var blob = xhttp.response;
            if (blob) {
                var fileName = xhttp.getResponseHeader(fileName);
                var link = document.createElement('a');
                link.href = window.URL.createObjectURL(blob);
                link.download = fileName;
                link.click();
    
            } else {
                alert('Nessuna risposta XHR ricevuta!');
            }
        }
        xhttp.onprogress = function(e) {
            let perc = parseInt((e.loaded * 100) / e.total);
            const elProgress = document.querySelector(".progress>span");
            elProgress.style.width = perc + "%";
        }
        xhttp.send(null);
    il file lo scarica, almeno il progressbar va avanti ma nel "if(blob)" non fa nulla dove sto sbagliando?
    Ultima modifica di techno; 13-09-2021 a 12:54

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,680
    Ciao, non so se hai modificato già qualcosa ma a me sta funzionando. Prova magari a controllare se nella console log del tuo browser ti salta fuori qualche errore di script.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    sinceramente questo script sta su un progetto mobile per una app

  4. #4
    Ecco spiega l'errore:
    Access-Control-Allow-Origin

    Come lo risolvo?

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    ***edit***
    Ultima modifica di U235; 13-09-2021 a 16:54

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,293
    Quote Originariamente inviata da techno Visualizza il messaggio
    sinceramente questo script sta su un progetto mobile per una app
    In quel caso, dubito che tu possa avviare un download come se fossi in un browser, perché anche se basata su tecnologie Web ed essendo tecnicamente "wrappata" in un browser, non è detto che tutte le funzionalità tipiche di questo software siano disponibili (mentre in genere ve ne sono altre che di solito non sono accessibili per motivi di sicurezza, volte a consentire l'accesso all'hardware e al sistema operativo).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Ecco spiega l'errore:
    Access-Control-Allow-Origin

    Come lo risolvo?

  8. #8
    Quote Originariamente inviata da alka Visualizza il messaggio
    In quel caso, dubito che tu possa avviare un download come se fossi in un browser, perché anche se basata su tecnologie Web ed essendo tecnicamente "wrappata" in un browser, non è detto che tutte le funzionalità tipiche di questo software siano disponibili (mentre in genere ve ne sono altre che di solito non sono accessibili per motivi di sicurezza, volte a consentire l'accesso all'hardware e al sistema operativo).
    Be sul sito Apache Cordova spiega chiaramente che le nuove direttive download sono passate a xmlhttprequest e ce anche l'esempio come fare quindi credo che sia supportato

  9. #9
    Quote Originariamente inviata da U235 Visualizza il messaggio
    ***edit***
    Ho modificato il codice in questo modo:

    codice:
    let xhttp = new XMLHttpRequest;
        xhttp.open("GET", apkUrl, true);
        xhttp.responseType = "blob";
        xhttp.onload = function(e) {
            var blob = xhttp.response;
            if (blob) {
    
    
                apkInstaller.install(fileName, function(msg) {
                    navigator.app.restartApp();
                    // Start the installer
                }, function(error) {
                    alert(error);
                    // Install error
                });
    
    
    
    
            } else {
                alert('Nessuna risposta XHR ricevuta!');
            }
        }
        xhttp.onprogress = function(e) {
            let perc = parseInt((e.loaded * 100) / e.total);
            const elProgress = document.querySelector(".progress>span");
            elProgress.style.width = perc + "%";
        }
        xhttp.send(null);
    ora mi fa il download ma poi se installo la app mi da "Errore durante l'analisi del pacchetto"
    Quindi credo che ho lo scarica danneggiato oppure non completa il download

  10. #10
    Quote Originariamente inviata da techno Visualizza il messaggio
    codice:
    var apkUrl = 'https://www.radiomatese.it/Download/RadioMatese.apk';
    Occhio che quel APK mi sembra un virus perche chiede il permission di REQUEST_INSTALL_PACKAGES.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.