0

input['file']1 つは画像用、もう 1 つはビデオ用の複数ファイルのアップロードを実行しようとしています。

ここにコントローラーがあります

public function upload(){
  $data['errorPic'] = $this->validateUpload();  
  $data['errorVid'] = $this->validateUpload2();
}

public function validateUpload(){
    if ( $_FILES AND isset($_FILES['coverImage']['name']) ){
        $config['upload_path'] = 'blogpics/';
        $config['allowed_types'] = 'png|gif|jpg|jpeg';
        $config['max_size'] = '999999';

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

        if(!$this->upload->do_upload("coverImage")){
            return $this->upload->display_errors();
        }
    }   
}

public function validateUpload2(){
    if ( $_FILES AND isset($_FILES['video']['name'])){
        $config['upload_path'] = 'blogvids/';
        $config['allowed_types'] = 'png|gif|jpg|jpeg';
        $config['max_size'] = '999999';

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

        if(!$this->upload->do_upload("video")){
            return $this->upload->display_errors();
        }
    }
}

呼び出された最初の関数のみが機能しています

例: 最初に関数を関数の上に配置validateUpload2()すると、一番上validateUpload()の最初の関数が機能し、2 番目の関数は機能しませんでした

4

2 に答える 2

1

みんな返信ありがとう

私はすでにそれを解決しました

を使用してアップロードを再度初期化するだけです

$this->upload->initialize();
于 2012-06-12T03:50:56.113 に答える
0

機能しない理由は、アップロードされたファイルが移動されるまで一時的なものであるためです。move_uploaded_file が実行されると、一時ファイルにアクセスできなくなります。2 番目の関数で is_uploaded_file を呼び出すと、false が返されます。

最初のディレクトリに書き込んだファイルを 2 番目のフォルダにコピーすることを検討してください。

編集

投稿内容を変更したようです。そのシナリオは前のシナリオとは異なります。

今回は、2 つの別々のファイルがアップロードされているようです。

うまくいくように見えますが、調べています。アップロード ヘルパー クラスの再初期化と関係があるのでしょうか。

于 2012-06-09T01:24:57.397 に答える