PHP の単一ファイルと複数ファイルのアップロード例の説明

jacklove
リリース: 2023-04-02 16:00:02
オリジナル
1719 人が閲覧しました

この記事では、PHP における単一ファイルのアップロードと複数ファイルのアップロードに関するコードの詳細な分析と問題解決方法を説明します。一緒に学び、参考にしてみましょう。

$_FILES 空の配列はどのような場合ですか?

フォーム送信の enctype が php.ini 設定ファイルの multipart/form-data と等しくない場合、file_uploads = Off で、アップロードされたファイル サイズ > php.ini で設定された最大アップロード サイズ設定ファイル

$_FILES が空の配列である限り、上記の問題が発生する可能性があるため、修正する必要があります。

ファイルを選択せず​​にすぐに「アップロードボタン」をクリックすると、$_FILESは要素の配列となり、要素内の各属性は空文字列、error属性は4

単一ファイルのアップロード

$_FILES データ構造

array(
  'filename' => array(
    'name' => 'xxx.png',
    'type' => 'image/png',
    'size' => 2548863,
    'tmp_name' => '/img/sdsdsd.png',
    'error' => 0
  )
)
ログイン後にコピー

単一ファイル

または

複数ファイル アップロード

、5 つの固定属性があります: name / size / type / tmp_name / error

複数ファイル アップロード

単一ファイルのアップロードと比較して、複数ファイルのアップロードは処理がはるかに複雑です。フロントエンドでの複数ファイルのアップロードの 2 つの形式

//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>
ログイン後にコピー

バックエンド

$_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
ログイン後にコピー
フィールド エラーの目的

値: 1 アップロードされたファイルは、php.ini の Upload_max_filesize オプションで制限された値を超えています。

値: 2 アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。

値: 3 ファイルは部分的にのみアップロードされました。

値: 4 ファイルはアップロードされませんでした。値: 5 アップロード ファイル サイズは 0 です。

PHP マルチプレイヤー モジュール開発の原理分析

XHProf を使用して PHP パフォーマンスのボトルネックを見つける方法の説明

Laravel フレームワークのカスタム テンプレート ディレクティブの関連概要


以上がPHP の単一ファイルと複数ファイルのアップロード例の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート