Maison > Article > développement back-end > Explication détaillée du cas de traitement du téléchargement de fichiers PHP
Cet article présente principalement la méthode de traitement du téléchargement de fichiers PHP, et analyse les problèmes rencontrés lors de l'opération de téléchargement de fichiers PHP et les solutions associées sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Les exemples dans. cet article décrit la méthode de traitement de téléchargement de fichiers PHP. Je voudrais le partager avec vous pour votre référence. Les détails sont les suivants :
J'ai récemment rencontré quelque chose qui m'a longtemps troublé. J'aimerais partager mes premières réflexions
. Le mécanisme de téléchargement de PHP est entièrement encapsulé. , il peut être implémenté avec seulement quelques lignes de code. Le processus d'implémentation est le suivant
TÉLÉCHARGER le fichier dans un répertoire temporaire –> le répertoire spécifié
Il s'agit du processus de téléchargement PHP, ou vous pouvez faire une vérification au milieu. Par exemple, déterminez si le document est soumis par téléchargement ou si l'extension de fichier est autorisée par nous
et une série de vérifications. Le code simple que j'ai donné peut être considéré comme un point de départ.
$targetFolder = '/uploads'; // 定义根目录 if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; if(is_uploaded_file($tempFile)) { $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name']; $fileTypes = array('jpg','jpeg','gif','png'); // 允许的后缀扩展 $fileParts = pathinfo($_FILES['Filedata']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo '非法上传文档.'; } }else { echo "非法上传文件"; } }
La méthode ci-dessus répond essentiellement aux exigences de téléchargement de fichiers. Mais ce n'est pas ce dont j'ai besoin.
Fonction de téléchargement
Exigences : Cliquez d'abord pour télécharger le document, puis sélectionnez le fichier de téléchargement. Une fois JS téléchargé, une valeur sera renvoyée. afficher le nom d'horodatage actuel. Le fichier se trouve dans la zone Nom du document.
Cliquez ensuite sur Soumettre pour soumettre le formulaire.
Le serveur traite le formulaire soumis et renomme le fichier téléchargé.
Le problème se pose également. Le serveur est IIS, et c'est un répertoire virtuel implémenté à l'aide du mappage.
Dans ce cas, $_SERVER['DOCUMENT_ROOT'] n'est pas dans le répertoire racine du site PHP
Bien que la fonction de téléchargement soit terminée, ce fichier ne peut pas être téléchargé. Pour des raisons de sécurité du serveur, je prévois toujours de placer le fichier sur le site PHP.
Puis je suis tombé dans une limitation de réflexion.
Réfléchissez-y :
Pourquoi je n'ai pas besoin d'implémenter à nouveau le mécanisme de téléchargement de PHP.
PHP ne met-il pas d'abord les fichiers dans le répertoire temporaire ? Alors pourquoi dois-je supposer que le répertoire après le téléchargement JS est également un répertoire temporaire,
, puis copier les fichiers lors de la soumission à nouveau du formulaire. Accédez au répertoire spécifié pour terminer la fonction requise.
PHP a une fonction de copie de fichier Copy(); puis coopère avec la fonction rename(). De cette façon, le deuxième déplacement et le renommage du fichier téléchargé peuvent être terminés.
Remarque : Si vous copiez un fichier de zéro octet sous la plate-forme Windows, copy() renverra FALSE, mais le fichier sera copié correctement.
Ensuite, PHP fait activement référence au mécanisme de traitement de fichiers de Liunx dans le traitement de fichiers. L'efficacité du fonctionnement des fichiers PHP est liée à l'écriture des E/S et au système d'exploitation.
Résumé : Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Recommandations associées :
phpAprès la connexion à Apache, le test a trouvé une solution aux caractères tronqués
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!