Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele für PHP-Uploads einzelner Dateien und mehrerer Dateien erklärt

Beispiele für PHP-Uploads einzelner Dateien und mehrerer Dateien erklärt

jacklove
jackloveOriginal
2018-07-05 18:02:581650Durchsuche

Dieser Artikel enthält eine detaillierte Analyse des Codes und der Problemlösungen für das Hochladen einzelner Dateien und mehrerer Dateien in PHP. Bitte lesen Sie ihn gemeinsam durch.

Wann ist $_FILES ein leeres Array?

Wenn der Enctype der Formularübermittlung nicht mit multipart/form-data in der php.ini-Konfigurationsdatei übereinstimmt, ist file_uploads = Aus und die Größe der hochgeladenen Datei > die in der php.ini konfigurierte maximale Upload-Größe Konfigurationsdatei

Solange $_FILES ein leeres Array ist, können die oben genannten Probleme auftreten und müssen behoben werden!

Wenn Sie sofort auf die Schaltfläche „Hochladen“ klicken, ohne eine Datei auszuwählen, ist $_FILES ein Array mit Elementen. Jedes Attribut im Element ist eine leere Zeichenfolge und das Fehlerattribut ist 4

Einzeldatei-Upload

$_FILES-Datenstruktur

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

Ob es ist单文件 Oder 多文件上传, es gibt 5 feste Attribute: Name / Größe / Typ / tmp_name / Fehler

Mehrere Datei-Uploads

Phase Im Vergleich zum Hochladen einzelner Dateien ist die Verarbeitung mehrerer Dateien viel komplizierter. Die beiden Formen des Hochladens mehrerer Dateien im Frontend

//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>


Die entsprechende Datenstruktur des Backends $_FILES ist unterschiedlich

//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

Feld Fehlerzweck

Wert: 1 Die hochgeladene Datei überschreitet die Größe von php.ini. Der Wert der Option „upload_max_filesize“ ist begrenzt.

Wert: 2 Die Größe der hochgeladenen Datei überschreitet den durch die Option MAX_FILE_SIZE im HTML-Formular angegebenen Wert.

Wert: 3 Die Datei wurde nur teilweise hochgeladen.

Wert: 4 Es wurden keine Dateien hochgeladen. Wert: 5 Die hochgeladene Dateigröße beträgt 0.

Prinzipielle Analyse der PHP-Multiplayer-Modulentwicklung

Erklärung der Verwendung von XHProf zum Auffinden von PHP-Leistungsengpässen

Zugehörige Zusammenfassung der benutzerdefinierten Vorlagendirektiven im Laravel-Framework

Das obige ist der detaillierte Inhalt vonBeispiele für PHP-Uploads einzelner Dateien und mehrerer Dateien erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn