salve a tutti
vi prego di armarvi di buona paziena e di darmi una mano, scusate la lunghezza del messaggio ma volevo essere quanto più chiaro possibile.
ho la necessità di permettere il download di immagini tramite readfile() di php. la cosa non mi crea alcun problema se fatta in semplice php. il problema è farlo in ajax, per questo ho postato qui.
ecco un pò di codice:
----------------------------------------------
PARTE JAVASCRIPT
----------------------------------------------Codice PHP:var ora;
function GetXmlHttpObject()
{
if (window.XMLHttpRequest) return new XMLHttpRequest();
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
return null;
}
function smgo(percorso){
ora = GetXmlHttpObject();
if(ora==null){
alert("Aggiornare il browser!");
return;
}
var url = "opera.php";
ora.onreadystatechange=lavora;
ora.open("POST", url, true);
ora.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ora.send("percorso="+percorso);
}
function lavora(){
if(ora.onreadyState == 4)
//--che devo fare qui?
}
PARTE HTML
----------------------------------------------Codice PHP:<button onclick="smgo('immagini/1.jpg')">salva</button>
PARTE PHP
----------------------------------------------Codice PHP:$attuale = $_REQUEST['percorso'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($attuale));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($attuale));
readfile($attuale);
SPIEGAZIONE CODICE E RICHIESTA
-GetXmlHttpObject mi crea l'oggetto per le richieste asincrone
-smgo prende il percorso del file da scaricare che viene passato con method post alla pagina opera.php, inoltre invoca la funzione lavora al cambio di stato della richiesta
-lavora in teoria dovrebbe far comparire la finestra per il download
Come devo strutturare la funzione lavora affinchè compaia la finestra di download?
Grazie in anticipo per la risposta

Rispondi quotando
, scherzi a parte l'unica strada è inserire un iframe per eseguire upload e con ajax interroghi il server per capire quando ha finito upload, questo in teoria in pratica boh non conosco il php io l'ho fatto in asp
