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='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'> <input type='hidden' name='MAX_FILE_SIZE' value='2621114' /> <input name='upload_file' type='file' /> </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['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".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['f']['tmp_name'])){ echo '非法'; }
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!