Visualizzazione risultati 1 fino 5 di 5

Discussione: Download di file via php, si chiamano sempre _download_ [era: _download_, _??]

  1. #1
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito Download di file via php, si chiamano sempre _download_ [era: _download_, _??]

    Buna a tutti.

    Sto avendo dei problemi con un download, non so perchè mi scarichi il file in modo errato, ovvero ogni volta mi scarica il file chiamato " _download_ ":
    Questo è quanto ho scritto:
    Codice PHP:
    <?php
    $dir
    = '/download/';
    $file = $dir.$_POST['namefile'].$_POST['typefile'];
    if(
    $file == $dir)
    {
    $file = $dir."index.php";
    }
    $headle = fopen('file_work.txt','r');
    $content = fread($headle,filesize('file_work.txt'));
    fclose($headle);
    $headle = fopen($file,'w');
    fwrite($headle,$content);
    fclose($headle);
    header("Content-type: Application/octet-stream");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Length: filesize($file)");
    readfile ($file);
    ?>
    Se vi interessa sapere come invio le variabili POST:
    Codice HTML:
    $.ajax({
    		type: 'POST',
    		url: 'download_file.php',
    		data: 'namefile='+namefile.value+'&typefile='+typefile.value,				
    		success: function(done)
    		{					
    			$(this).fadeIn('4000', "easeOutBounce").html(done);
    		}
    });
    molto semplicemente.
    Saluti & Birra.
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,270

    Predefinito

    Direi che qua
    Codice PHP:
    header("Content-Disposition: attachment; filename=$file");
    la variabile $file contiene l'intero percorso del file, mentre ho idea che serva solo il nome. Puoi separarlo dal path usando basename(), o magari ce l'hai già da parte prima.

    In più, suggerisco file_get_contents e file_put_contents per semplificarti la vita.

  3. #3
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Si ma l'header come fa a sapere che file voglio scaricare? è che il file che mi interessa a me scaricare non é presente nella stessa directory, ma si trova in una sotto cartella, per questo che inserisco anche la directory.
    Grazie per i consigli, ne terrò a mente. Comunque l'importanza è che i codici funzionino.


    P.s: ho riscontrato una pecca, con ajax(); io dinamicamente riesco ad accedere alla pagina per scaricare, e infatti mi crea i file, ma, non mi scarica xD
    Sto provando a trovare una soluzione.
    Saluti & Birra.
    Ultima modifica di memai : 15-01-2013 alle ore 22.41.14
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,270

    Predefinito

    Ad header() non importa sapere dove sia il file: quella riga serve soltando per dire al browser come chiamare il file quando lo salva sul tuo computer. Il percorso completo va solo passato a readfile().

    Per il PS, beh, è così che funziona una chiamata asincrona: tu contatti il server, e questo ti ritorna il contenuto della pagina, o del file, come risposta alla chiamata. Se vuoi scaricare un file non ti serve javascript, ti basta solo un link ad esso —o al php che poi te lo fa scaricare.
    Ultima modifica di dreadnaut : 16-01-2013 alle ore 02.56.46

  5. #5
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Grazie, sei un mito.
    Ho sistemato tutto inserendo un link ipertestuale nel file della la creazione dei files con target _blank.
    Grazie ancora!.
    Saluti & Birra
    Notte bistecca, ho l'acquolina in bocca e 'sta sera c'è, carne di manzo per me!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •