2010-12-04 4 views

Répondre

1

fonctionne comme prévu, si vous voulez l'arrêter, arrêtez d'utiliser l'assistant de téléchargement.

l'assistant de téléchargement envoie les en-têtes appropriés afin que le fichier est obligé de télécharger sur le bureau des utilisateurs/téléchargements

ce que vous essayez de faire?

modifier Ok alors que votre contrôleur est appelé « téléchargement » et votre méthode est appelée « vue » qui affiche des liens vers vos téléchargements comme ceci:

mysite.com/download/process/foo.pdf

créer une méthode dans votre download contrôleur appelé process

function process($file) 
{ 
    $this->load->helper('download'); 
    $data = file_get_contents("my-downloads/$file"); // Read the file's contents 
    force_download($file, $data);    
} 

non testé, mais il devrait fonctionner

vous voudrez une validation, etc.

si l'utilisateur affiche les fichiers téléchargeables sur downloads/view et quand ils cliquent sur un lien, ils vont à la méthode process pour télécharger le fichier.

vous voudrez probablement une redirection ou similaire après le début du téléchargement du fichier, et je pense que vous pourriez le faire avec AJAX afin que l'utilisateur ne quitte jamais la page.

+0

Je veux que les utilisateurs télécharger le fichier uniquement lorsqu'ils cliquent sur le lien de téléchargement – ktm

+0

voir mon post modifié – Ross

1

Essayez ceci:

function do_download($file_name="") 
{ 
    $file_path = 'custom/uploads/project/'.$file_name; 
    header('Content-Type: application/octet-stream'); 
    header("Content-Disposition: attachment; filename=$file_name"); 
    ob_clean(); 
    flush(); 
    readfile($file_path); 
} 
Questions connexes