Maison  >  Article  >  développement back-end  >  Comment implémenter la fonction de téléchargement de fichier en php

Comment implémenter la fonction de téléchargement de fichier en php

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-08-30 13:18:413038parcourir

Comment implémenter la fonction de téléchargement de fichier en php

Comment implémenter le téléchargement de fichiers en PHP

Partie formulaire

Pour permettre aux utilisateurs de télécharger des fichiers, ajoutez un attribut upload à la déclaration du formulaire HTML :

enctype = 'multipart/form-data'

La méthode du formulaire doit être POST

L'option du formulaire MAX_FILE_SIZE le champ caché est utilisé pour limiter la taille du fichier téléchargé, il doit être placé devant l'élément du formulaire de fichier et l'unité est en octets.

Le code est le suivant :

<form enctype=&#39;multipart/form-data&#39; id=&#39;aa&#39; name=&#39;aaa&#39; method=&#39;post&#39; action=&#39;xxx.php&#39;> 
<input type=&#39;hidden&#39; name=&#39;MAX_FILE_SIZE&#39; value=&#39;2621114&#39; /> 
<input name=&#39;upload_file&#39; type=&#39;file&#39; /> 
</form>

Recommandations associées : "Tutoriel de démarrage PHP"

2. files

Lors du téléchargement, PHP reçoit un tableau d'informations sur le fichier, qui se trouvent dans le tableau super global $_FILES.

Par exemple : si le nom de la zone de saisie du fichier dans le formulaire est upload_file, alors toutes les informations sur le fichier sont incluses dans le tableau $_FILES['upload_file'].

Par exemple : Le client a téléchargé une valeur de tableau d'images de "aaa.jpg" comme suit :

name "p5pp.jpg" Le nom du fichier lors du téléchargement

tapez le type de fichier "image/ jpeg"

tmp_name "/tmp/phpjksdf" nom du fichier temporaire côté serveur

valeur de retour d'erreur de l'erreur de téléchargement

taille du fichier réel 2045 size

Les erreurs dans le tableau ci-dessus renverront différentes valeurs constantes, comme suit :

UPLOAD_ERR_OK Aucune erreur ne s'est produite, le téléchargement du fichier a réussi

UPLOAD_ERR_INI_SIZE La taille du fichier dépasse la valeur limitée par l'option upload_max_filesize dans PHP.INI

UPLOAD_ERR_FORM_SIZE La taille du fichier téléchargé dépasse la valeur de l'option MAX_FILE_SIZE dans le formulaire HTML. Vous pouvez vérifier le formulaire $FILES ['up_file']['size'] dans le programme pour gérer

UPLOAD_ERR_PARTIAL Seule une partie du fichier a été téléchargée

UPLOAD_ERR_NO_FILE L'utilisateur n'a fourni aucun fichier upload

Exemples spécifiques de traitement post-upload :

Le code est le suivant :

if(!move_uploaded_file($_FILES[&#39;f&#39;][&#39;tmp_name&#39;],"uploads/".$_FILES[&#39;f&#39;][&#39;name&#39;].".jpg")){ 
echo "error"; 
}

Fonction :

move_uploaded_file déplace le fichier temporaire téléchargé fichier dans le répertoire spécifié

Exemple :

move_uploaded_file('temporary file name','specified file path')

is_uploaded_file détermine si le fichier est téléchargé via http Post

Exemple :

Le code est le suivant :

if(!is_uploaded_file($_FILES[&#39;f&#39;][&#39;tmp_name&#39;])){ 
echo &#39;非法&#39;; 
}

3 Paramètres associés

Paramètres dans php.ini que PHP télécharge le design sur :

file_uploads S'il faut autoriser les téléchargements de fichiers, activé par défaut.

upload_tmp_dir est le répertoire temporaire pour télécharger les fichiers. S'il n'est pas spécifié, l'emplacement par défaut du système sera utilisé.

upload_max_filesize La taille maximale des fichiers téléchargés autorisés, la valeur par défaut est 2M.

post_max_size contrôle la quantité maximale de données que PHP peut accepter dans une soumission de formulaire à l'aide de la méthode POST. Si vous souhaitez utiliser des fichiers PHP pour le téléchargement, cette valeur doit être modifiée pour être supérieure à upload_max_filesize.

max_input_time limite le temps en secondes pour recevoir des données via les méthodes POST/GET/PUT.

memory_limit Afin d'éviter que l'exécution de scripts utilise une grande quantité de mémoire système, PHP vous permet de définir des limites d'utilisation de la mémoire. Définissez ce paramètre pour spécifier la capacité de mémoire maximale qu'un seul script peut utiliser, qui doit être correctement supérieure à la valeur post_max_size.

max_execution_time est utilisé pour définir le temps, en secondes, pendant lequel PHP attend la fin du script avant de forcer l'arrêt du script. Cette deuxième option peut limiter les scripts en boucle infinie, mais cette fonctionnalité peut également provoquer l'échec de l'opération en cas d'activité légitime prolongée (comme le téléchargement d'un fichier volumineux). Dans ce cas, vous devez envisager d'augmenter cette variable.

4. Pensez à télécharger plusieurs fichiers

Vous pouvez facilement télécharger plusieurs fichiers en utilisant le tableau $_FILES. Le tableau $_FILES peut obtenir tout le contenu des champs de fichiers dans le formulaire client, obtenant ainsi tous les fichiers téléchargés dans le même formulaire.

5. Dépassez la limite de mémoire de téléchargement

Méthode 1 :

Modifiez la valeur memory_limit dans php.ini en une valeur plus grande, telle que 64M

Méthode 2 :

Utilisez la méthode Apache Rewrite pour modifier dynamiquement la valeur de memory_limit. Créez d’abord un fichier .htaccess et enregistrez-le dans le répertoire actuel du programme de téléchargement de fichiers.

Le code est le suivant :

php_value memory_limit 100M 
php_value post_max_size 30M 
php_value upload_max_filesize 30M 
php_value max_execution_time 300 
php_value max_input_tim 300 
php_value display_errors On

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