ホームページ  >  記事  >  バックエンド開発  >  PHPで複数のファイルをアップロードする方法

PHPで複数のファイルをアップロードする方法

墨辰丷
墨辰丷オリジナル
2018-05-25 10:51:142015ブラウズ

この記事では、PHP で複数のファイルをアップロードするためのサンプルコードに関する関連情報を主に紹介します。興味のある方は参考にしてください。

複数のファイルをアップロードする

1. 複数のファイル情報を操作する前に、ファイル情報を構築し、buildInfo関数を使用して3次元配列をファイル操作に便利な2次元配列に変換する必要があります。

function buildInfo(){
  $i = 0;
  foreach ($_FILES as $v){
    //判断是否是单文件
    if(is_string($v['name'])){
      $files[$i] = $v;
      $i++;
    }else{
      //多文件
      foreach ($v['name'] as $key => $value){
        $files[$i]['name'] = $value;
        $files[$i]['size'] = $v['size'][$key];
        $files[$i]['tmp_name'] = $v['tmp_name'][$key];
        $files[$i]['type'] = $v['type'][$key];
        $files[$i]['error'] = $v['error'][$key];
        $i++;
      }
    }
  }
  return $files;
}

単一ファイルか複数ファイルかの判断は、ファイル配列の種類、単一ファイル(二次元配列)、複数ファイル(三次元配列)によって決まります。

2. ファイルアップロード関数とパラメータ


コードをコピーします コードは次のとおりです:


function UploadFiles($path = "uploads", $allowExt = array("jpg", "gif", "png" 、 "wbmp")、$maxSize = 1048576、$imgFlag = true)

パス、保存ディレクトリ。 allowExt、許可される拡張子の配列。 maxSizeアップロード ファイルの最大サイズ。 imgFlag、画像ファイル識別子。

3. ファイルが保存されているディレクトリが存在するかどうかを確認します

if(!file_exists($path)){
    mkdir($path, 0777, true);
  }

4. 構築されたファイル情報を渡してファイルに保存します

$i = 0;
$files = buildInfo();

5.

foreach ($files as $file){
    if($file['error'] == UPLOAD_ERR_OK){
}else{
    switch ($file['error']){
      case 1:
        $mes = "超过配置文件上传文件大小";
        break;
      case 2:
        $mes = "超过了表单设置";
        break;
      case 3:
        $mes = "文件部分被上传";
        break;
      case 4:
        $mes = "没有文件上传";
        break;
      case 6:
        $mes = "没找到临时目录";
        break;
      case 7:
        $mes = "文件不可写";
        break;
      case 8:
        $mes = "由于PHP的扩展程序中断了文件上传";
        break;
    }

6. ファイルの種類を制限します

if($file['error'] == UPLOAD_ERR_OK){
      $ext = getExt($file['name']);
      if(!in_array($ext, $allowExt)){
        exit("非法文件类型");
      }

7. 画像の種類を制限します

if($imgFlag){
        if(!getimagesize($file['tmp_name'])){
          exit("不是真的图片类型");
        }
      }

8.ええ

9。ファイルが post を通じてアップロードされたかどうかを確認します

if($file['size'] > $maxSize){
        exit("文件过大");
      }

10. ファイルの名前を変更し (一意で重複しない)、ターゲット ディレクトリに保存します

if(!is_uploaded_file($file[‘tmp_name'])){ 
exit(“文件不是通过HTTP POST上传”); 
}

ファイル情報配列の名前を書き換えます。変数 file['error'] と file['tmp_name'] を削除します。最後に、正常にアップロードされたファイルをuploadedFiles配列に保存します。

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。


関連する推奨事項:


phpで

複数のファイルをアップロードする

max_file_uploads制限の問題


複数のファイルをアップロードする

phpのmax_file_uploads制限の問題の解決策

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

、複数の写真のサンプルコード


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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。