ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter で複数のファイルをアップロードする際の「アップロードするファイルが選択されていません」エラーを解決する方法

CodeIgniter で複数のファイルをアップロードする際の「アップロードするファイルが選択されていません」エラーを解決する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 20:13:11318ブラウズ

How to Solve

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

問題:

単一のフォーム要素を使用して複数のファイルをアップロードすると、エラー「ファイルを選択しませんでした「

解決策:

問題は、CodeIgniter アップロード ライブラリの初期化にあります。入力フィールドで multiple 属性を使用する場合、複数のファイルを処理できるようにライブラリの初期化を調整する必要があります。

Modified Uploadメソッド:

private function upload_files($path, $title, $files)
{
    $config = array(
        'upload_path'   => $path,
        'allowed_types' => 'jpg|gif|png',
        'overwrite'     => 1,
    );

    $this->load->library('upload', $config);

    $images = array();

    foreach ($files['name'] as $key => $image) {
        $_FILES['images[]']['name']      = $files['name'][$key];
        $_FILES['images[]']['type']      = $files['type'][$key];
        $_FILES['images[]']['tmp_name']  = $files['tmp_name'][$key];
        $_FILES['images[]']['error']     = $files['error'][$key];
        $_FILES['images[]']['size']      = $files['size'][$key];

        $fileName = $title . '_' . $image;

        $images[] = $fileName;

        $config['file_name'] = $fileName;

        $this->upload->initialize($config);

        if ($this->upload->do_upload('images[]')) {
            $this->upload->data();
        } else {
            return false;
        }
    }

    return $images;
}

説明:

  • 初期化: アップロード ライブラリは初期化され、複数のファイルを処理するように構成されています$_FILES で複数のインデックスを定義することにより (すなわち、画像[]).
  • マルチパート処理: 入力フィールドの multiple 属性では、サーバーが複数のファイルのアップロードを処理する必要があります。初期化により入力名に [] サフィックスが追加され、複数のファイルをポストできるようになります。
  • ファイル データ: foreach ループは各ファイルを個別に処理し、対応するデータで $_FILES を初期化し、ファイル名を連結したタイトルとして file_name を設定します。
  • アップロード プロセス: それぞれファイルは do_upload('images[]') を使用してアップロードされ、成功したアップロードは $images 配列に追加されます。

これらの変更を行うことで、複数のファイルを使用して複数のファイルを正常にアップロードできるようになります。フォーム内の属性

以上がCodeIgniter で複数のファイルをアップロードする際の「アップロードするファイルが選択されていません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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