Bonjour,
depuis je rencontre un proplème pour afficher un lien de téléchargement
j'ai une table campagne dans lequels j'ai comme champ (fichier_joint) qui contient le chemin vers mon fichier dans le repertoire app/webroot/img/download/
j'arrive a enregistrer les chemins dans ma tables campagnes.

mon sous est que je veux afficher un lien de téléchargement lorsque j'affiche la liste des campagnes de sorte que l'on puisse cliquer et télécharger le fichier.

j'utilise cakephp 2.7

Ce que je fais

dans mon controlleur Campagnes, je fais ceci:

    public function membre_sendFile($id) {
            $file = $this->Campagne->getFile($id);
            $this->response->file($file['path']);
            //Retourne un objet reponse pour éviter que le controller n'essaie de
            // rendre la vue
            return $this->response;
        }

dans ma vue, j'ai ceci:

<?php echo $this->Html->link(' Télécharger',array('membre' => true,'controller' => 'Campagnes','action' => 'sendFile', $campagne['Campagne']['fichier_joint']),array('class'=> 'btn btn-sucess btn-xs ','title'=>'Détails')); ?>

le lien qui me permet de télécharger le fichier.

Ce que je veux

je veux obtenir un lien de téléchargement

Ce que j'obtiens

lorsque je clique sur télécharger, rien ne se passe

5 réponses


romses
Auteur
Réponse acceptée

voici l'erreur The requested URL /Mediatarget/membre/Campagnes/sendFile//img/campagnes/clients/189/1454582834_189.zip was not found on this server.

YOP.

Même en définissant l'option download sur true aux options de la méthode $this->response->file (pour forcer le téléchargement)?
Si oui, est-ce que tu as le debug d'activé? Est-ce que tu as vu/eu des erreurs? Peux-tu nous montrer tes dernieres erreurs (ou celles qui concernent ce problème, s'il y en a)?

Puis c'est à dire rien ne se passe? Tu click, le navigateur "mouline"?

Peut-être que ton serveur est long à la détente et que tu dois malheureusement attendre (et encore j'suis pas sûr)... ou que tu n'as pas les droits/permissions pour télécharger le fichier en question ^^

romses
Auteur

j'ai fait une érreur en validans sur résolu en effet le problème n'est pas encor résolu j'ai le débug activé et voila l'erreur
The requested URL /Mediatarget/membre/Campagnes/sendFile//img/campagnes/clients/189/1454582834_189. was not found on this server.

Ok c'est une erreur apache 404 mais je ne vois pas pourquoi ça ne t'affiche pas la page 404 dans ca cas... :c

Mais est-ce que le lien généré par le framework est bon déjà? Est-ce que t'arrives à y accéder sans y mettre le code de téléchargement (sans tout ce qui est à l'intérieur de ta méthode sendFile)?

Tu peux debug($id) voir ce que ça te retourne?

romses
Auteur

ok Merci je regarde