Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Non esegue il download del file

    Buon pomeriggio.
    Ho una funzione che invia due date ad un file scarica.php.
    Questo scarica.php dovrebbe anche eseguire il download del file.csv, ma non lo fa, perché ovviamente faccio un errore, dove?E come posso risolvere?
    codice:
    if (confirm("Procedi con il download del file?")){
    			$.ajax({
    					type : "POST",
    					url  : "scarica.php",
    					data : "rCerca=" + d1 + "&rCercaAl=" + d2,
    					dataType: "html",		  
    					success: function(html){
    						//$("#ddl").html(html);
    						window.location.href = "scarica.php";
    						//return;
    					},
    					error: function(html){
    						alert('error!');
    						//$("#csv").html(html);
    					}
    				});
    		}
    		else{
    			return;
    		}
    Dentro scarica.php
    codice:
    $file =  "csv/report_segnalazioni_".str_replace("/","",$_POST['rCerca'])."_".str_replace("/","",$_POST['rCercaAl']).".csv";
    echo $file;
    if (!file_exists($file))
    {
      // se non esiste stampo un errore
    	echo "Il file non esiste!".$file;
    }else{
    	$filedimension = filesize($file);
    	header("Content-type: text/csv");
    	header("Content-Disposition: attachment; filename=$file");
    	header("Content-Description: Download file");
    	header("Content-Length: $filedimension");
    	readfile($file);
    }
    Il tutto funziona se non invio alcun valore per post.
    Mi aiutate per favore?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,890
    Quote Originariamente inviata da ANTAGONIA Visualizza il messaggio
    Buon pomeriggio.
    Questo scarica.php dovrebbe anche eseguire il download del file.csv, ma non lo fa, perché ovviamente faccio un errore, dove?E come posso risolvere?
    Non puoi avviare un download se la pagina che restituisce il file viene invocata tramite AJAX, tralasciando l'aggravante che stai facendo pure un POST: devi far "navigare" il browser all'indirizzo che, come risposta, ti restituisce l'allegato da scaricare, impostandola ad esempio come location oppure aprendo una finestra popup con quell'indirizzo da recuperare.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    130

    codice HTML:
    <formaction="scarica.php"method="POST">
            <inputtype="date"name="rCerca"id="rCerca"value="">
            <inputtype="date"name="rCercaAl"id="rCercaAl"value="">
            <inputtype="submit"value="download"id="download">
        </form>
    
        <script>
    lettoday=newDate().toISOString().slice(0, 10)
    letdal=document.getElementById("rCerca");
    letal=document.getElementById("rCercaAl");
    
    dal.setAttribute("value", today);
    al.setAttribute("value", today);
    </script>
    Codice PHP:
    <?php

    $dal 
    date_create($_POST['rCerca']);
    $dal date_format($dal'd-m-Y');
    $al date_create($_POST['rCercaAl']);
    $al date_format($al'd-m-Y');
    $file =  "./csv/report_segnalazioni_" str_replace("-"""$dal) . "_" str_replace("-"""$al) . ".csv";
    if (!
    file_exists($file)) {
        
    // se non esiste stampo un errore
        
    echo "Il file : " basename($file) . " non esiste!(redirect in 3sec.)";
        
    header("refresh:3; index.html");
        exit;
    } else {
        
    $filedimension filesize($file);
        
    header("Content-type: text/csv; charset=UTF-8");
        
    header("Content-Disposition: attachment; filename=" basename($file));
        
    header("Content-Description: Download file");
        
    header("Content-Length: $filedimension");
        
    readfile($file);
    }


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 © 2020 vBulletin Solutions, Inc. All rights reserved.