この質問は以前に尋ねられましたが、この正確な問題ではありません。うまく機能するアップロード システムがあります (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.' ));
}
}
}