1

この質問は以前に尋ねられましたが、この正確な問題ではありません。うまく機能するアップロード システムがあります (CSV をアップロードして解析しています)。ただし、ファイル サイズが 5Mb を超えると、次のエラーが表示されます: アップロードするファイルが選択されていません

下にある場合、ファイルは正常にアップロードおよび解析されます。

最初に php.ini 設定を 128M に設定し、今は 99999999999999999999 に設定しました。また、CI 構成 maz_size を 9999999999 に設定しました (より現実的な数値を使用していましたが、確認したかったのです) それぞれで apache を再起動しましたini を変更しましたが、まだこの問題は残っています。

ファイル サイズに問題がある場合、「アップロードするファイルを選択しませんでした」というエラーが表示されるのを見てきましたが、他にどこで確認すればよいかわかりません。

最後に、phpinfo() をエコーすると、最大アップロードが 999999999999999 であることを確認できます。

髪を引っ張る…

他に何がありますか?

/// 更新: コードの追加 csv を解析する 2 つの方法があります。1 行ずつ行う方法と、ファイル全体を直接 DB にダンプして後で並べ替える方法です。これらは両方とも機能し、構成設定によって選択されます。それが $this->config->item('import_type') の行です。どんなアイデアでも大歓迎です!

    public function upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'txt|csv|xls|xlsx';
    $config['max_size'] = '999999999999999999999';

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

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('feed_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());

        if ($this->config->item('import_type') == 'db') {
            $result = $this->model_feed->capture_file($this->input->post('feed_name'), $data['upload_data']['full_path']);
        } else {
            $result = $this->capture_feeds($this->input->post('feed_name'), $data['upload_data']['full_path']);
        }

        if ($result) {
            $this->load->view('feed_upload_success', $data);
        } else {
            $this->load->view('feed_form', array('error' => 'The file you supplied does not match the data structure we were expecting.' ));
        }
    }
}
4

2 に答える 2

4

php.ini でも post_max_size を増やす必要があります

http://www.php.net/manual/en/ini.core.php#ini.post-max-size

于 2012-07-05T14:03:13.320 に答える