3

私は自分の CodeIgniter プロジェクトに取り組んでおり、これまでのところ非常にうまく機能しています。

ただし、場合によっては (すべてではない) 制限したいので、アップロードされたファイルの数を数える方法が必要です。

どうやってやるの?試しcount($_FILES)てみましたが、何も使えませんでした。

他にもいろいろ試してみましたが、必要な情報は得られませんでした。

アップロード フォームは複数ファイルのアップロードで、このライブラリを使用して複数のアップロードを処理しています。

カウントなしのアップロード関数は次のようになります。

function do_upload()
{
    $setid = $this->input->post('imageset');
        $this->load->library('upload');
        $this->load->library('image_lib');
        $this->upload->initialize(array(
                "upload_path"   => "./photos/",
                "allowed_types" => "jpg|jpeg|png|gif",
                "encrypt_name" => TRUE
        ));
        try {
            $this->upload->do_multi_upload("files");
            $images = $this->upload->get_multi_upload_data();
            $config = array(
                    'image_library'  => 'gd2',
                    'create_thumb'   => TRUE,
                    'maintain_ratio' => TRUE,
                    'width'          => '145',
                    'height'         => '145'
            );
            foreach ($images as $image)
            {
                $config['source_image'] = $image['full_path'];
                $this->image_lib->initialize($config);
                $this->image_lib->resize();
                $this->manage_model->insertimage($image['file_name'],$image['orig_name'],$image['file_size'],$image['file_type'],$setid);
            }
            $this->session->set_flashdata('success','Billederne er nu blevet uploadet.');
        } catch (Exception $e) {
            $this->session->set_flashdata('error', $e);
        }
        redirect('manage/images','refresh');
}

どんな助けでも大歓迎です。

4

2 に答える 2

1

アップロードするファイルを制限したい場合。2 つのステップでそれらを制限できます。

  1. アップロードするファイルの指定された配列名のみを受け入れます。つまり、ファイル[]

  2. アップロードされたファイルを簡単にカウントできるようになりました

count($_FILES['files']['name']);

文字列「name」は、「tmp_name」、「error」、「size」、「type」に置き換えることができます

使用したライブラリは、最初の実行時にファイルをアップロード パスにアップロードしました。そのため、アップロードする前に手動で確認する必要があります。

  function do_upload()
  {
    $setid = $this->input->post('imageset');
    $this->load->library('upload');
    $this->load->library('image_lib');
    $this->upload->initialize(array(
        "upload_path"   => "./photos/",
        "allowed_types" => "jpg|jpeg|png|gif",
        "encrypt_name" => TRUE
    ));
    if (isset($_FILES['files']['name'])) {
      $num = count($_FILES['files']['name']);
    }

        try {
          $this->upload->do_multi_upload("files");
          $images = $this->upload->get_multi_upload_data();
          $config = array(
              'image_library'  => 'gd2',
              'create_thumb'   => TRUE,
              'maintain_ratio' => TRUE,
              'width'          => '145',
              'height'         => '145'
          );
          foreach ($images as $image)
          {
            $config['source_image'] = $image['full_path'];
            $this->image_lib->initialize($config);
            $this->image_lib->resize();
            $this->manage_model->insertimage($image['file_name'],$image['orig_name'],$image['file_size'],$image['file_type'],$setid);
          }
          $this->session->set_flashdata('success','Billederne er nu blevet uploadet.');
        } catch (Exception $e) {
          $this->session->set_flashdata('error', $e);
        }
        redirect('manage/images','refresh');
      }

お役に立てれば

于 2013-05-11T22:41:58.697 に答える