Salve,
visto che ho guardato sul manuale ufficiale su tutti i collegamenti delle prime tre pagine di risultati di google, sui risultati del search del forum e sono, per il MIO LOCALHOST TUTTE SBAGLIATE !!
mi spiegate come funziona il forzare del download di un file.
GRazie
Il codice che uso è questo:
In pratica uso un MVC
Faccio arrivare ad un pagina caricata in AJAX un url del tipo
codice:
var url='http://localhost/omero/downloader/download/'+x;
$('#corpo').load(url);;
Dove x è il percorso del file in cui sono state sostituite le "/" con delle _
La funzione Download di Downloader.php
trasmette semplicemente l'url ad una pagina di download
codice:
function download($file) {
$this->view->filename=$file;
$this->view->render('downloader/download',1);
}
L'uno dopo il downloader/download indica che non viene caricato nulla (header stili, js etc..) al di fuori del codice della pagina
Nella pagina download ho questo codice (
codice:
$filepath=$this->filename;
$files= str_ireplace("_","/",$filepath);
$files=DROOT."reservedarea/downloadcenter/".$files;
$dimensione_file=filesize($files);
header('Content-Description: File Transfer');
header('Content-Type: ' . "application/force-download");
header("Content-Disposition: attachment; filename=pippo");
header("Content-Description: Download FILE");
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Length: $dimensione_file");
readfile($files);
Come vedete sono solo dati php e non ci sono echo e simili prima degli header.
Prendo il file, riconverto gli _ in / gli aggiungo il percorso di base della cartella download (DROOT."reservedarea/downloadcenter/)
e gli provo a forzare il download.
Quello che ottengo è una pagina di questo tipo:
�PNG IHDR����M�tEXtSoftwareAdobe ImageReadyq�e<�"iTXtXML:com.adobe.xmp �߲��DIDATxڤ� �eey�������z��hh�A A4J>q��KLro���e�0�|��f�r�J���h�7�DM�F�D��A� �nhz�������}�w��zO���Ut�9{���y�;��s���������� ���t������K�MMM��?v�X���ԟ����D����@���E�걎=Z?���s .���G�سgO}�Wij�=-[~g ��lj�ಁ9�*�sf��駟
che penso sia la trascrizione dei dati del file stesso
Ditemi voi come posso forzare un download
Daniele