Comment télécharger un fichier en PHP

How Download File Php



Généralement, aucun script PHP n'est requis pour télécharger un fichier avec les extensions EXE et Zip *: français . Si l'emplacement du fichier de ce type de fichier est défini dans le href attribut de l'élément d'ancrage, le fichier se télécharge automatiquement lorsque l'utilisateur clique sur le lien de téléchargement. Certains fichiers, tels que image des dossiers, PDF des dossiers, texte des dossiers, CSV les fichiers, etc., ne se téléchargent pas automatiquement et s'ouvrent plutôt dans le navigateur lorsque l'utilisateur clique sur le lien de téléchargement. Ces fichiers peuvent être téléchargés de force en PHP en utilisant le fichier de lecture() fonction qui ne se télécharge pas automatiquement. Ce tutoriel vous montre comment télécharger de force n'importe quel fichier à l'aide d'un script PHP.

Vérifier les liens de téléchargement

Il a été mentionné précédemment que Zip *: français et EXE les fichiers se téléchargent automatiquement, sans utiliser de script PHP. Tout d'abord, créez un fichier HTML avec le code suivant. Ici, les quatre éléments d'ancrage sont définis pour télécharger les quatre types de fichiers. Ces types de fichiers incluent les fichiers TEXT, ZIP, PDF et JPG.







Télécharger.html



< html >
< diriger >
< Titre >Telecharger des fichiers</ Titre >
</ diriger >
< corps >
< p >< à href='abc.txt'>Télécharger le fichier TEXTE</ à ></ p >
< p >< à href='horizon.zip'>Télécharger le fichier ZIP</ à ></ p >
< p >< à href='conférence.pdf'>Télécharger le fichier PDF</ à ></ p >
< p >< à href='rose.jpg'>Télécharger le fichier JPG</ à ></ p >
</ corps >
</ html >

Sortir
La boîte de dialogue suivante apparaîtra pour télécharger le fichier après avoir cliqué sur le lien du fichier zip. L'utilisateur peut alors télécharger le fichier ou ouvrir le fichier dans le gestionnaire d'archives.




Si vous cliquez sur le fichier image, l'image s'ouvrira automatiquement dans le navigateur, comme indiqué dans la sortie suivante. Vous devez enregistrer le fichier pour faire une copie du fichier image sur le lecteur local. De la même manière, lorsque vous cliquez sur les liens des fichiers PDF et TEXTE, le contenu du fichier sera ouvert dans le navigateur sans télécharger le fichier. La solution à ce problème est de télécharger le fichier de force en utilisant le PHP intégré readfile() fonction.





Télécharger le fichier à l'aide de la fonction readfile()

Les readfile() La fonction est utilisée dans le script PHP pour télécharger de force n'importe quel fichier de l'emplacement actuel, ou le fichier avec le chemin du fichier. La syntaxe de cette fonction est donnée ci-dessous.



Syntaxe
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

Cette fonction peut prendre trois arguments. Le premier argument est obligatoire et les deux autres arguments sont facultatifs. Le premier argument, $nom de fichier , stocke le nom de fichier ou le nom de fichier avec le chemin qui sera téléchargé. La valeur par défaut du deuxième paramètre, $use_include_path , est faux et sera défini sur vrai si le nom de fichier avec le chemin est utilisé dans le premier argument. Le troisième argument, $contexte , est utilisé pour indiquer la ressource de flux de contexte. Cette fonction renvoie le nombre d'octets lus dans le fichier mentionné dans le premier argument. Les utilisations de cette fonction sont illustrées dans les deux exemples suivants.

Exemple 1 : Télécharger le fichier avec le nom de fichier

Dans cet exemple, nous allons créer un fichier HTML avec le code suivant, où le nom du fichier sera passé en paramètre de l'URL nommé chemin , et la valeur de ce paramètre sera passée au fichier PHP nommé download.php .

download2.html

< html >
< diriger >
< Titre >Télécharger des fichiers</ Titre >
</ diriger >
< corps >
< p >< à href='download.php?path=abc.txt'>TéléchargerTEXTEdéposer</ à ></ p >
< p >< à href='download.php?path=horizon.zip'>Télécharger le fichier ZIP</ à ></ p >
< p >< à href='download.php?path=lecture.pdf'>Télécharger le fichier PDF</ à ></ p >
< p >< à href='download.php?path=rose.jpg'>Télécharger le fichier JPG</ à ></ p >
</ corps >
</ html >

Nous allons créer le fichier PHP avec le code suivant pour télécharger le fichier de force. Ici le disparu) La fonction est utilisée pour vérifier si le $_GET['chemin'] est défini. Si la variable est définie, le le fichier existe() La fonction est utilisée pour vérifier si le fichier existe sur le serveur. Ensuite, le entête() La fonction est utilisée pour définir les informations d'en-tête nécessaires avant d'utiliser la readfile() fonction. Les nom de base() est utilisée pour récupérer le nom du fichier, et la taille du fichier() La fonction est utilisée pour lire la taille du fichier en octets, qui sera affichée dans la boîte de dialogue d'ouverture pour télécharger le fichier. Les affleurer() La fonction est utilisée pour effacer le tampon de sortie. Les readfile() La fonction est utilisée avec le nom de fichier uniquement, ici.

download.php



si( disparu ($_GET['chemin']))
{
//Lire le nom du fichier
$nom de fichier = $_GET['chemin'];
//Vérifiez que le fichier existe ou non
si( le fichier existe ($nom de fichier)) {

//Définition des informations d'en-tête
entête (« Description du contenu : transfert de fichiers »);
entête (« Type de contenu : application/octet-stream »);
entête ('Cache-Control : pas de cache, doit revalider');
entête ('Expire : 0');
entête ('Contenu-Disposition : pièce jointe ; nom de fichier=''. nom de base ($nom de fichier).'' ');
entête (« Longueur du contenu : » . taille du fichier ($nom de fichier));
entête (« Pragma : publique »);

//Effacer le tampon de sortie du système
affleurer ();

//Lire la taille du fichier
fichier de lecture ($nom de fichier);

//Terminer à partir du script
les ();
}
autre{
chassèrent 'Fichier ne existe pas.';
}
}
autre
chassèrent 'Le nom de fichier n'est pas défini.'
?>

Sortir
La sortie suivante apparaîtra après avoir cliqué sur le lien de téléchargement du fichier image. La taille du fichier du rose.jpg l'image est 27,2 Ko , comme indiqué dans la boîte de dialogue. Vous pouvez télécharger le fichier en sélectionnant le Enregistrer le fichier bouton radio et en appuyant sur le d'accord bouton.

Exemple 2 : Télécharger le fichier avec le chemin du fichier

Si le fichier existe à l'emplacement de fichier donné, le chemin du fichier devra être mentionné dans l'URL. Dans cet exemple, nous allons créer un fichier HTML avec le code suivant, qui transmettra le nom du fichier avec le chemin du fichier :

download3.html

< html >
< diriger >
< Titre >Telecharger des fichiers</ Titre >
</ diriger >
< corps >
< p >< à href='download.php?path=downloads/lecture.pdf'>Télécharger le fichier PDF</ à ></ p >
< p >< à href='download2.php?path=downloads/rose.jpg'>Télécharger le fichier JPG</ à ></ p >
</ corps >
</ html >

Nous allons créer un fichier PHP avec le code suivant pour télécharger un fichier à partir du chemin du fichier. Le code PHP de l'exemple précédent sera légèrement modifié pour télécharger le fichier à partir du chemin donné. Les clearstatecache() La fonction est utilisée pour effacer le cache qui a été précédemment stocké. Deux arguments sont utilisés dans le readfile() fonction.

download2.php


si( disparu ($_GET['chemin']))
{
//Lire l'url
$url = $_GET['chemin'];

//Vider le cache
clearstatcache ();

//Vérifiez que le chemin du fichier existe ou non
si( le fichier existe ($url)) {

//Définition des informations d'en-tête
entête (« Description du contenu : transfert de fichiers »);
entête (« Type de contenu : application/octet-stream »);
entête ('Contenu-Disposition : pièce jointe ; nom de fichier=''. nom de base ($url).'' ');
entête (« Longueur du contenu : » . taille du fichier ($url));
entête (« Pragma : publique »);

//Effacer le tampon de sortie du système
affleurer ();

//Lire la taille du fichier
fichier de lecture ($url,vrai);

//Terminer à partir du script
les ();
}
autre{
chassèrent 'Le chemin du fichier n'existe pas.';
}
}
chassèrent 'Le chemin du fichier n'est pas défini.'

?>

Sortir
Après avoir cliqué sur le lien de téléchargement du fichier PDF, la sortie suivante apparaîtra.

Didacticiel vidéo

Conclusion

Cet article a fourni un moyen simple de télécharger de force n'importe quel fichier à l'aide du script PHP, pour aider les lecteurs à ajouter la fonction de téléchargement dans leur script.