Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-12-2011, 20:05   #1
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
[JAVA + AJAX] Scaricare un file con AJAX da una servlet

Salve a tutti!
Ho una servlet che si occupa di gestire le richieste AJAX. Il problema è che non riesco a implementare la funzione di download di un file via AJAX. Sulla pagina web ho un pulsante con la funzione javascript download registrata per l'evento onclick:
Codice PHP:
function ajaxRequest(methodparameters) {
    var 
XMLHttpReq;
    try {
        
XMLHttpReq = new XMLHttpRequest();
    } catch (
e) {
        try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP.6.0");} catch(e) {}
        try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP.3.0");} catch(e) {}
        try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {}
        try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");}
        catch(
e) {return "!!AJAXERROR!!Impossibile creare una richiesta AJAX.";}
    }
    
    var 
strRequestParams "";
    if (
isArray(parameters)) {
        for (var 
0parameters.lengthi++) {
            
strRequestParams strRequestParams "&" parameters[i];
        }
    } else if (
isHash(parameters)) {
        var 
keys parameters.getKeys();
        for (var 
0keys.lengthi++) {
            
strRequestParams strRequestParams "&" keys[i] + "=" parameters[i];
        }
    } else {
        
strRequestParams parameters;
    }
    
    
XMLHttpReq.open("post"getBaseURL()+"ajaxrequest.do"false);
    
XMLHttpReq.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
XMLHttpReq.send("method="+method+strRequestParams);
    return 
XMLHttpReq.responseText;
}

function 
downloadFile(idDocumento) {
    var 
ajaxResponse ajaxRequest("downloadFile", new Array("idDocumento="+idDocumento));
    
alert(ajaxResponse);

Tale funzione richiama la servlet che esegue il metodo seguente:
Codice PHP:
private void downloadFile() {
        try {
            
long idDocumento Long.parseLong(request.getParameter("idDocumento"));
            
GeScuolaOperations gso GeScuolaServiceFactory.getInstance().getGeScuolaService();
            
Documento doc gso.getDocDetails(new Documento(idDocumento));
            
response.setContentType("application/octet-stream"); 
            
response.setHeader("Content-Disposition""attachment;filename=\"" doc.getNome() + "\"");
            
response.setIntHeader("Content-Length"doc.getContenuto().length);
            
response.getOutputStream().write(doc.getContenuto());
        } catch (
Throwable t) {
            
sendErrorResponse(t);
        }
        return;
    } 
Sul client ricevo nell'alert il contenuto del file, però non mi appare la finestra per salvare il file.
Sapete dirmi come posso realizzare questa cosa?

Grazie!

Ultima modifica di VegetaSSJ5 : 09-12-2011 alle 23:56.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2011, 23:55   #2
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Mi rispondo da solo.
Forse i browser non hanno ancora implementato (magari volutamente) il download di file da una richiesta AJAX.
Per risolvere è bastato aprire una nuova pagina popup tramite javascript con la window.open per scaricare il file.
Per completezza metto il codice della funzione javascript.
Codice PHP:
function downloadFile(idDocumento) {
    
window.open(getBaseURL()+"ajaxrequest.do?method=downloadFile&idDocumento="+idDocumento"Download documento""location=no,menubar=no,resizable=no,titlebar=no,toolbar=no");


Ultima modifica di VegetaSSJ5 : 09-12-2011 alle 23:57.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Ford: l'elettrico genera una perdita di ...
Ayaneo Next 2: la console portatile Wind...
Il WiFi può vederti senza telecam...
Linux sotto assedio: SSHStalker riporta ...
Stellantis: dopo il crollo di venerd&igr...
Combat Liquid 360 HUD: raffreddamento AI...
Tornano le EVO Sessions della Formula E:...
Moltbook, il social network per AI: i po...
Cina: eseguito il test della navicella M...
Mistral, il rivale europeo di OpenAI, in...
Libri piratati, allarme rosso: 722 milio...
Ayaneo svela quasi tutte le specifiche d...
Sony chiude definitivamente con i regist...
Renault Twingo E-Tech Electric sotto i 2...
Auto elettriche, il freddo non fa pi&ugr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v