Botturn Programmation PHP

Tout sur PHP, Tutoriaux, scripts, Leçons vidéo, Forum, Téléchargements


PHP Tutorial - Envoyer un fichier sur le serveur

Posté par admin le Avril - 20-2009

PHP supporte de nombreuses fonctionnalités, de sorte que son grand succès auprès des développeurs qui cherchent la facilité de programmation, bases de données de soutien,
quel que soit le système d'exploitation et le matériel, entre autres.

Parmi les fonctionnalités de PHP est un soutien pour l'envoi de fichiers sur le serveur par le biais d'un formulaire HTML. N'importe quel type de fichier peut être envoyé sur le serveur, que ce soit une image, un fichier texte, une base de données, etc., Ou plutôt, le fichier est binaire ou texte.

Pour envoyer un fichier, vous devez d'abord créer un formulaire pour l'utilisateur de spécifier le fichier que vous souhaitez envoyer:

  <form action="teste.php" enctype="multipart/form-data" method="post">
 <input name="ficheiro" type="file" />
 <input type="submit" name="submit" value="Send ficheiro" />
 </ Form> 

ATTENTION: Le "enctype" est obligatoire, sans elle, vous ne pouvez pas envoyer le fichier sur le serveur!

Pour accepter le fichier php, certains paramètres doivent être configurés correctement en php:

file_uploads = Sur - PHP supporte l'envoi de fichiers;

upload_tmp_dir = - Quel est le répertoire où vous conservez php "temporairement" le fichier envoyé.

upload_max_filesize = 2M - taille du fichier Max acceptée par php

Typiquement, PHP est déjà configuré pour accepter les fichiers téléchargés, mais c'est toujours bon de vérifier vos paramètres dans le fichier php.ini pour ne pas avoir des maux de tête plus tard.

Outre la taille limite des fichiers imposée par la configuration de php (qui s'adresse à tous les scripts côté serveur) peut également limiter la taille en utilisant une configuration de la forme:

  "MAX_FILE_SIZE \" type=" hidden " value=" 1024 " /> <input Name = "MAX_FILE_SIZE \" type = valeur "hidden" = "1024" /> 

Dans ce cas, nous limitons la taille de fichier maximale à 1024 octets. Mais il devrait s'appuyer sur ce paramètre, parce que n'importe qui avec n'importe quelle connaissance de HTML sera en mesure de supprimer cette limite. Ci-dessous montrent une autre solution pour cela.

D'accord, l'utilisateur a sélectionné le fichier à envoyer et appuyé sur le bouton "Envoyer le fichier" si vous les chiots d'un fichier avec le formulaire ci-dessus et un fichier "test.php" (le même fichier peut être de la forme), le navigateur l'utilisateur envoie le fichier sur le serveur, et rien ne se passera, et vous enregistrez le fichier php dans le répertoire temporaire et supprimé le fichier dans l'exécution du script. Nous devons donc faire autre chose avec le fichier. Après réception du dossier, php il stocke dans un répertoire temporaire avec un nom choisi par lui, et de créer plusieurs variables globales avec des informations de ce fichier, basé sur le nom choisi pour le terrain, dans notre cas "fichier":

$ Fichier: nom du fichier, avec son chemin absolu où vous avez enregistré le php
$ Ficheiro_name: nom de fichier, absolue dans la machine de l'utilisateur
$ Ficheiro_size: taille en octets du fichier
$ Ficheiro_type: type "MIME" fichier

Avec ces variables, nous pouvons maintenant faire quelque chose avec le fichier. Nous pouvons, par exemple, vérifier que le fichier a une taille inférieure à la valeur maximum désirée doit être envoyé (ce qui est très importante car elle rend impossible pour quelqu'un d'envoyer un gros fichier qui permet de bloquer le serveur). Nous utilisons le script suivant:

  <Php
 $ficheiro_size > 1024 ) { si ($ ficheiro_size> 1024) {
 ; print "La taille du fichier est supérieure à la <br> autorisée»;
 sortie ;
 }
 ?> 

Pour certains utilisateurs ne quittent pas en colère, nous pouvons utiliser les deux options en même temps, la limite fixée dans la forme et dans le script, l'utilisateur lambda n'aura pas la déception de l'attente de quelques minutes pour envoyer le fichier vers le serveur et seulement après avoir été informé que le fichier était trop grande, de sorte que le navigateur se plaint qu'une trop grande taille avant d'envoyer le fichier, et les utilisateurs "petits malins" ont une déception de découvrir qu'il y avait une autre limitation.

Nous avons maintenant besoin de faire quelque chose avec le fichier avant de terminer le script, mais le php pour le supprimer. Nous avons le nom du fichier dans la variable "file", alors nous devons le mettre quelque part sur le serveur. Nous pouvons utiliser la fonction php "copie". La fonction de copie nécessite deux paramètres: source et de destination, et renvoie true ou false, c.-à-qu'ils aient été copiés ou non. Avertissement pour ceux qui vont utiliser cette méthode dans Linux, Unix ou tout autre qui prend en charge les autorisations de fichiers, parce que la "copie" se déroulera une copie du fichier que l'utilisateur exécutant le serveur, donc si l'utilisateur / groupe qui exécute le serveur n'a pas de permission d'écriture sur le répertoire de destination, il ne sera pas en mesure de copier le fichier il. Dans ce cas, essayez d'écrire dans / tmp, qui ont généralement le droit d'écriture pour tous les utilisateurs, ou donner la permission à un répertoire spécifique juste pour graver les fichiers. En supposant que le serveur est autorisé à écrire dans le fichier dans le sous-répertoire du répertoire de notre script, nous écrivons:

  <Php
 ....
 copy ( $ficheiro , "ficheiro/ficheiro_do_utilizador" ) ) { if ( copie ($ file, "Fichier / ficheiro_do_utilizador")) {
 ; print "Le fichier a été reçu avec succès <br>!";
 { Else {}
 ; print "Erreur de réception du fichier <br>!";
 }
 ?> 

Bon, maintenant le fichier a été enregistré en tant que fichier dans le sous-répertoire ficheiro_do_utilizador. Notez que tous les utilizadors pour envoyer le fichier vers le serveur aurez votre fichier enregistré avec le même nom, il y aura donc un seul fichier et le fichier sera le dernier utilisateur qui a envoyé le fichier.

C'est l'exercice pour le lecteur pour créer un fichier unique pour chaque utilisateur et un utilisateur ne peut pas envoyer plus de trois fichiers par connexion.

Bientôt il y aura un tutorial qui explique comment faire

Jusqu'à la prochaine fois!

Popularité: [5% ? ]

Related posts Apporté à vous par Yet Another Related Posts Plugin .

Laisser un commentaire