0

フォームの一部としてファイルのアップロードがあり、

コード イグナイター フォーム検証ライブラリを使用していますが、

コードイグナイターアップロードライブラリも使用しています。

アップロード ライブラリを使用して画像などをアップロードする方法は知っていますが、フォームの検証中にファイルの基本的な検証 (required、maxsize、filetype など) を含めたいと考えています。

コールバックを行う必要があることはわかりましたが、問題は、検証ライブラリがチェックするだけでチェック$_POSTしないことです$_FILES

これどうやってするの?

おそらく、必要な入力を投稿配列にコピーすることを考えていました

$_POST['image'] = $_FILES['image']

次に、コールバックだけで検証を実行します。これにより、実際のアイテムでアップロード ライブラリを使用して実際の検証が行われます$_FILESが、それは少しハッキーに思えます。

これを行うより良い方法はありますか?

4

1 に答える 1

1

コールバックに $_FILES をチェックさせるだけです - $_POST をコピーする必要はありません

public function _check_file($file)
{
          $this->load->library('upload');
          if ( ! $this->ci->upload->do_upload())
          {
                $this->form_validation->set_message('_check_file', 'error');
                return FALSE;
          }
          else
          {
                    return TRUE;
          }
}

編集:明確にするために-検証ライブラリはデフォルトでPOSTのみをチェックしますが、コールバックを実行すると、ファイルにアクセスできます-コールバックでファイルをチェックするだけです。これは私がしていることであり、うまく機能します。

于 2012-09-16T00:41:36.460 に答える