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

    download di un file non compresso.

    Come faccio a predisporre il download di un file non compresso?

    Ho file txt e devo poter dare la possibilità agli utenti di scaricarlo cliccando semplicemente su un link o un pulsante.

    Grazie

  2. #2
    Sto provando con il readfile e con il 'Content-Type: application/force-download', ma mi sta dando un sacco di errori, non è qualcuno l'ha già usato e mi sa dare una mano?

  3. #3

  4. #4
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    wow! sta cosa non la sapevo! E' utilissima
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  5. #5
    Mi da un sacco di errori con l'header...

    E' da questa mattina che cerco di farlo funzionare...

  6. #6
    Originariamente inviato da Lisa79
    Mi da un sacco di errori con l'header...

    E' da questa mattina che cerco di farlo funzionare...
    ma hai provato la mia funzione ?

    inutile dire che non puo' essere inclusa in nessun file che ha gia' stampato a video qualunque cosa , che utilizza sessioni o che ha parti di codice html o di testo a inizio pagina ... l' errore e' al 99% quello perche' quella funzione e' nata proprio con un test su un file di tipo .txt


    in pratica, fatti una pagina a parte dove passi l' immagine in get o post ...

    file download.php
    codice:
    <?php
    function forceDownload( &$file ) {
    	/**
    	 * Function forceDownload:
    	 *	download any type of file if it exists and is readable
    	 * -------------------------------------
    	 * @author		Andrea Giammarchi
    	 * @date		18/01/2005
    	 * @compatibility	PHP >= 4.3.0
    	 */
    	if( file_exists( $file ) == true && is_readable( $file ) == true ) {
    		$filename = &basename( $file );
    		if( strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) {
    			$parsename = &explode( '.', $filename );
    			$last = count( $parsename ) - 1;
    			$filename = &implode( '%2E', array_slice( $parsename, 0, $last ) );
    			$filename .= '.'.$parsename[$last];
    		}
    		$content = &file_get_contents( $file );
    		header( 'Content-Type: application/octet-stream' );
    		header( 'Content-Disposition: attachment; filename='.$filename );
    		header( 'Content-Length:'.strlen( $content ) );
    		header( 'Content-Transfer-Encoding: binary' );
    		echo $content;
    		exit(0);
    	}
    }
    if( isSet( $_GET['file'] ) == true ) {
    	$_GET['file'] = &urldecode( $_GET['file'] );
    	forceDownload( $_GET['file'] );
    }
    ?>
    basta, senza altro ... prova e vedrai che funziona ma occhio che on-line e' pericolosa, rischi di far scaricare pagine php, sorgenti o passwords, devi aggiungere solo filtri migliori per il file da scaricare
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Nooooooooooo!
    Ecco questo non lo sapevo!
    Ok, ora lo faccio, grazie...


    Scusami, ma sono un po' fusa, io stavo provando con un mio script derivato da quete pagine:
    http://www.php.net/function.readfile

    Nel tuo basta passare il nome del file, poi la lunghezza e il path assoluto se lo ricava lui, giusto? Basta che il file sia nella stessa directory. Me lo confermi? Scusa, ma sono cotta, vorrei evitare di stare fino a questa sera ad impazzire con questo script.

  8. #8
    In attesa di risposta ho risolto con il mio...
    Tra l'altro ho una versione di php inferiore al 4.3.0, quindi il tuo file_get_contents mi avrebbe dato problemi.
    Ho risolto con la mia funzione "readfile", naturalemte grazie alla tua dritta di creare un nuovo file.

    Grazie.

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