0

モデル機能:

public function file_upload($folder, $allowed_type, $max_size = 0, $max_width = 0, $max_height = 0)
    {
        $folder = $this->path . $folder;

        $files = array();
        $count = 0;

        foreach ($_FILES as $key => $value) :

            $file_name = is_array($value['name']) ? $value['name'][$count] : $value['name'];
            $file_name = $this->global_functions->char_replace($file_name, '_');
                $count++;
                $config = array(
                'allowed_types' => $allowed_type,
                'upload_path'   => $folder,
                'file_name'     => $file_name,
                'max_size'      => $max_size,
                'max_width'     => $max_width,
                'max_height'    => $max_height,
                'remove_spaces' => TRUE
                 );

        $this->load->library('image_lib');
            $this->image_lib->clear();
            $this->load->library('upload');
            $this->upload->initialize($config);

            if (!$this->upload->do_upload($key)) :
                $error = array('error' => $this->upload->display_errors());
            var_dump($error);
                return FALSE;
            else :
                $file = $this->upload->data();
                $files[] = $file['file_name'];
            endif;

        endforeach;

        if(empty($files)):
            return FALSE;
        else:
            return implode(',', $files);
        endif;
    }

この機能は部分的に機能しています。選択したフォルダーにファイルをアップロードしていますが、次のエラーが表示されます:アップロードするファイルが選択されていません。結果としてFALSEを取得しますか?何が問題だと思われますか? (フォームはform_open_multipartを使用しています)

4

2 に答える 2

1

これが発生したときに、ファイル入力のいずれかが空になっていますか?$_FILES入力にファイルが指定されていない場合は、「空の」データの配列が含まれます。たとえば、私のファイル入力名はone、で、ファイルを指定せずに送信しました。

Array
(
    [one] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )
)

アップロードを処理する前に、ファイルデータが空かどうかを確認する必要があります。PHPis_uploaded_file()はこれに役立ちます。

于 2013-03-15T00:38:59.540 に答える
1

ファイル タグ フィールドの名前が次のようになっていることを確認してください。

   $key='userfile' //which is name of input type field name
于 2013-03-14T16:31:47.033 に答える