Maison >développement back-end >tutoriel php >Exemple de traitement de téléchargement de fichier PHP

Exemple de traitement de téléchargement de fichier PHP

墨辰丷
墨辰丷original
2018-06-01 09:20:431541parcourir

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

J'ai récemment rencontré. a Je me trompe depuis longtemps et je souhaite partager mes premières réflexions

Le mécanisme de téléchargement de PHP est entièrement encapsulé et peut être implémenté avec seulement quelques lignes de code. comme suit

TÉLÉCHARGEZ le fichier dans le répertoire temporaire –>Utilisez move_uploadde_file() dans le répertoire spécifié

Il s'agit du processus de téléchargement PHP, ou vous pouvez effectuer certains 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 :

L'interface d'appel PHP utilise la méthode post pour transmettre les données json

php Méthode simple pour implémenter le tri combiné

Comment combiner PHP avec Ueditor et modifier le chemin de téléchargement de l'image

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