Maison  >  Article  >  développement back-end  >  Explication détaillée du cas de traitement du téléchargement de fichiers PHP

Explication détaillée du cas de traitement du téléchargement de fichiers PHP

墨辰丷
墨辰丷original
2018-05-31 17:25:271335parcourir

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

php Utilisez des cookies pour réaliser la fonction de mémorisation des noms d'utilisateur et des mots de passe sur les pages Web

PHP utilise Curl pour implémenter une fonction de connexion simulée et de capture de données exemples

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn