Mettre un lien de téléchargement dans une page

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Je voudrais savoir comment faire pour mettre un lien de téléchargement dans une page.

J'ai essayé de mettre ceci dans le corps de la page:

download

Mais il me met une erreur, pourtant c'est bien un lien de téléchargement.

Si quelqu'un a une idée.

Merci d'avance

En principe, sous le path sites/default/files/nom_de_repertoire_upload si vous n'avez pas changé le mode par défaut de Drupal .

Je ne peux que vous conseiller de lire attentivement un livre sur Drupal, d'éplucher la documentation qui se trouve sur ce site ou sur d'autres voisins, et de regarder les nombreuses vidéos qui ont été faites sur ce CMS. La question que vous posez est le B.A. BA et les choses ne vont que devenir de plus en plus difficiles. Vous devez donc prendre le temps d'apprendre et de comprendre les bases.

Bonsoir,

Dans votre page vous mettez tout simplement :

Ensuite il faut créer sa page de téléchargement par exemple : telecharger_doc_pdf.php

qui contient :

<?php
ob_start
();
$fichier="drupal.pdf";
$fp = fopen($fichier,"r" );
$buff = fread($fp,filesize($fichier));
header("Content-Type: application/x-octet-stream\n" );
header( "Content-Disposition: attachment;filename=$fichier" );
header('Pragma: no-cache');
ob_end_flush();
header('Expires: 0');
readfile($fichier);
fclose($fp);
?>

Téléchargements

<?php
 

/////////////////////////// IMPORTANT //////////////////////
//////      Lisez les commentaires en orange s'il vous plait ! //////                                                                                                                  
//Créer une page de fichiers à télécharger                                                                          
//Voici une solution rapide pour mettre en place une liste de fichiers
// à télécharger dans une page statique.       
//                                                                                                                  
//L'idée est d'afficher sous forme de liste les noms de fichiers
//d'un dossier sous forme de lien cliquable ;
//les fichiers affichés sont filtrés par leur extension et le chemin
// d'accès au fichier est masqué.                   
//                                                                                                                
//Important : si les fichiers sont uploadés manuellement (par FTP),
//veillez à ce qu'ils soient nommés avec        
// uniquement des minuscules, des chiffres et le caractère "_" de
//manière à valider l'expression régulière qui    
//sélectionne les fichiers dans le code ci-dessous :                                                            
//                                                                                                             
//  a-z0-9-_                                                                                                  
//  Installation                                                                                             
//  1. Les différentes versions sont préédées par le signe  " # "
//et sont aux choix .                       
//  2. Créez une page statique et copiez dedans le code suivant                                            
////////////////////////////////////////////////////////////////


# PluXml 5.1+


global $plxShow;
// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Nom du sous-dossier, si applicable, par rapport à $dir (ajouter un / devant le nom)
$sousdir = '/telechargements';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir.$sousdir);
if (
$files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo
'<ul class="telechargements">';
    foreach(
$files as $filename) {
       
$encrypt = str_replace('/','',$sousdir).'/'.$filename;
       
$file = $dir.'/'.$filename;
        echo
'<li><a href="';
       
$plxShow->urlRewrite('?telechargement/'.plxEncrypt::encryptId($encrypt));
        echo
'">'.$filename.'</a></li>';
    }
    echo
'</ul>';
}
else echo
"Aucun document";

#  PluXml 5.0+ 

// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = plxGlob::getInstance($dir);
if (
$files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo
'<ul class="telechargements">';
    foreach(
$files as $filename) {
       
$file = $dir.'/'.$filename;
        echo
'<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
    }
    echo
'</ul>';
}
else echo
"Aucun document";


# PluXml 4.2 


// Nom du dossier fichiers à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des fichiers sous forme de liste
$glob = new plxGlob($dir);
if (
$files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo
'<ul class="telechargements">';
    foreach(
$files as $filename) {
       
$file = $dir.'/'.$filename;
        echo
'<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a></li>';
    }
    echo
'</ul>';
}
else echo
"Aucun document";

//  Version avec affichage de la taille des fichiers :

# PluXml 5.0+ 


// Nom du dossier images à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des images sous forme de liste
$glob = plxGlob::getInstance($dir);
if (
$files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo
'<ul class="telechargements">';
    foreach(
$files as $filename) {
       
$file = $dir.'/'.$filename;
       
$size = ceil(filesize($file)/1024);
        echo
'<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Ko)</li>';
    }
    echo
'</ul>';
}
else echo
"Aucun document";


# PluXml 4.2 


// Nom du dossier images à renseigner
$dir = 'data/documents';
// Récupération et affichage de la liste des images sous forme de liste
$glob = new plxGlob($dir);
if (
$files = $glob->query('/[a-z0-9-_]+.(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)$/')) {
    echo
'<ul class="telechargements">';
    foreach(
$files as $filename) {
       
$file = $dir.'/'.$filename;
       
$size = ceil(filesize($file)/1024);
        echo
'<li><a href="./?telechargement/'.plxEncrypt::encryptId($filename).'">'.$filename.'</a> ('.$size.'Ko)</li>';
    }
    echo
'</ul>';
}
else echo
"Aucun document";

//////////////////////////////////////////////////////////////
// 3. Modifiez la ligne suivante en remplaçant par l'emplacement de vos fichiers.
/// " // Nom du dossier fichiers à renseigner "
//" $dir = 'data/documents'; "
//4. Ajustez le filtre des fichiers à afficher
//
//Ajoutez/supprimer des extensions à la liste
//
//(jpg|gif|png|zip|rar|txt|pdf|mp3|flv)
//Personnalisation de l'affichage de la galerie
//Vous pouvez mettre en forme l'affichage de votre page en ajoutant un style dans
// le fichier style.css de votre thème pour la classe appelée "telechargement",
//définie dans le code source par la //ligne:
//   echo '<ul class="telechargements">'
 ///////////////////////////////////////////////////
  
  
  
  
?>

Libre à vous d'en faire ce que vous voulez !!!