Téléchargement de fichiers avec file_get_contents() à l'aide du contexte de flux HTTP
Le téléchargement de fichiers via un formulaire Web peut être réalisé de manière transparente à l'aide de l'extension cURL. Cependant, il est également possible d'effectuer des téléchargements de fichiers à l'aide de la fonction file_get_contents() de PHP en conjonction avec le contexte de flux HTTP.
Multipart Content-Type
Pour télécharger un fichier en utilisant file_get_contents(), il est crucial de définir un type de contenu "multipart/form-data". Cela spécifie que la demande contient plusieurs parties, y compris les données du fichier et tous les paramètres associés. Le délimiteur utilisé pour séparer ces parties est appelé limite.
Création du corps du contenu
Le corps du contenu doit suivre les spécifications HTTP et l'en-tête Content-Type. . Pour chaque fichier en cours de téléchargement, incluez les informations suivantes :
Création du contenu du fichier
À l'aide de file_get_contents(), obtenez le contenu du fichier à télécharger. Ajoutez-le au corps du contenu.
Définition des en-têtes et du contexte de demande
Définissez l'en-tête Content-Type et créez un contexte de flux HTTP à l'aide de stream_context_create(). Définissez la méthode de requête sur POST, ajoutez les en-têtes et spécifiez le corps du contenu.
Exécuter le téléchargement
Enfin, exécutez la fonction file_get_contents() avec l'URL appropriée et le contexte configuré.
Remarque
Les fichiers binaires peuvent être directement envoyés sans encodage. HTTP prend en charge le transfert de données binaires.
En suivant ces étapes, vous pouvez exploiter file_get_contents() et le contexte de flux HTTP pour télécharger des fichiers sur un serveur Web distant.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3