Maison  >  Article  >  développement back-end  >  Exemples de téléchargement de fichiers uniques et multiples PHP expliqués

Exemples de téléchargement de fichiers uniques et multiples PHP expliqués

jacklove
jackloveoriginal
2018-07-05 18:02:581707parcourir

Cet article vous donne une analyse détaillée du code et des solutions aux problèmes liés au téléchargement de fichiers uniques et au téléchargement de fichiers multiples en PHP. Veuillez l'étudier et vous y référer ensemble.

Quand $_FILES est-il un tableau vide ?

Lorsque l'enctype de soumission du formulaire n'est pas égal à multipart/form-data dans le fichier de configuration php.ini, file_uploads = Off et la taille du fichier téléchargé > la taille maximale de téléchargement configurée dans le php.ini fichier de configuration

Tant que $_FILES est un tableau vide, les problèmes ci-dessus peuvent survenir et doivent être corrigés !

Si vous cliquez immédiatement sur le bouton "Télécharger" sans sélectionner de fichier, $_FILES sera un tableau avec des éléments. Chaque attribut de l'élément est une chaîne vide et l'attribut d'erreur est 4

Téléchargement d'un seul fichier

Structure de données $_FILES

array(
  'filename' => array(
    'name' => 'xxx.png',
    'type' => 'image/png',
    'size' => 2548863,
    'tmp_name' => '/img/sdsdsd.png',
    'error' => 0
  )
)

Que

ou 单文件 aura 5 attributs fixes : nom / taille / type / tmp_name / erreur 多文件上传

Téléchargement de fichiers multiples

Par rapport à un seul le téléchargement de fichiers, le téléchargement multi-fichiers est beaucoup plus compliqué à traiter. Les deux formes de téléchargement multi-fichiers sur le front-end

//name相同
<form method="post" enctype="multipart/form-data">
  <input type="file" name="wt[]"/>
  <input type="file" name="wt[]"/>
  <input type="submit" value="提交"/>
</form>

//name不同(简单点)
<form method="post" enctype="multipart/form-data">
  <input type="file" name="wt"/>
  <input type="file" name="mmt"/>
  <input type="submit" value="提交"/>
</form>

.

La structure de données correspondante de

dans le backend est différente$_FILES

//name相同
array (size=1)
 &#39;wt&#39; => 
  array (size=5)
   &#39;name&#39; => 
    array (size=2)
     0 => string &#39;新建文本文档 (2).txt&#39; (length=26)
     1 => string &#39;新建文本文档.txt&#39; (length=22)
   &#39;type&#39; => 
    array (size=2)
     0 => string &#39;text/plain&#39; (length=10)
     1 => string &#39;text/plain&#39; (length=10)
   &#39;tmp_name&#39; => 
    array (size=2)
     0 => string &#39;C:\Windows\php1D64.tmp&#39; (length=22)
     1 => string &#39;C:\Windows\php1D65.tmp&#39; (length=22)
   &#39;error&#39; => 
    array (size=2)
     0 => int 0
     1 => int 0
   &#39;size&#39; => 
    array (size=2)
     0 => int 0
     1 => int 1820

//name不同(简单点)
array (size=2)
 &#39;wt&#39; => 
  array (size=5)
   &#39;name&#39; => string &#39;新建文本文档 (2).txt&#39; (length=26)
   &#39;type&#39; => string &#39;text/plain&#39; (length=10)
   &#39;tmp_name&#39; => string &#39;C:\Windows\php39C7.tmp&#39; (length=22)
   &#39;error&#39; => int 0
   &#39;size&#39; => int 0
 &#39;mmt&#39; => 
  array (size=5)
   &#39;name&#39; => string &#39;新建文本文档.txt&#39; (length=22)
   &#39;type&#39; => string &#39;text/plain&#39; (length=10)
   &#39;tmp_name&#39; => string &#39;C:\Windows\php39D8.tmp&#39; (length=22)
   &#39;error&#39; => int 0
   &#39;size&#39; => int 1820

Objectif de l'erreur de champ

Valeur : 1 Fichier téléchargé La valeur limitée par l'option upload_max_filesize dans php.ini a été dépassée.

Valeur : 2 La taille du fichier téléchargé dépasse la valeur spécifiée par l'option MAX_FILE_SIZE dans le formulaire HTML.

Valeur : 3 Le fichier n'a été que partiellement téléchargé.

Valeur : 4 Aucun fichier n'a été téléchargé. Valeur : 5 La taille du fichier de téléchargement est 0.

Analyse des principes du développement du module multijoueur PHP

Explication de l'utilisation de XHProf pour détecter les goulots d'étranglement des performances PHP

Résumé connexe des directives de modèle personnalisé dans le framework Laravel

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