2017-05-02 16 views
2

私は基本的にxlsファイルを受け入れ、それを解析してExcelファイルのデータを処理するcodeigniterアプリケーションを持っています。Codeigniterファイルのアップロード問題

ファイルのアップロードに使用したコードは次のとおりです。

フォームが送信されると、以下のコードが実行されます。小さいサイズのファイルを提出すると、適切にアップロードされ、処理されます。しかし、サイズが大きいファイルをアップロードするとアップロードされますが、処理されません。私はエラーとアップロードフォームにリダイレクトされる "あなたはアップロードするファイルを選択していませんでした。

max_execution_timeが原因ですか? PS:私は更新しようとしています ファイルサイズは1.59メガバイト

であるアップロード

public function do_upload() { 
    $config['upload_path'] = './excel_files/'; 
    $config['allowed_types'] = 'xls|xlsx'; 
    $config['max_size']  = 100000; 

    $this->load->library('upload', $config); 
    // upload failed, handle properly 
    if (! $this->upload->do_upload('userfile')) { 
     $error = array('error' => $this->upload->display_errors()); 
     $data = array('subview'=>'admin/upload_form','error'=>$error); 
     $this->load->view('layout', $data); 
    } 

    // upload success, record the file data 
    else { 
     $uploadData = $this->upload->data(); 

     $fileData = array(
         'name' => $uploadData['orig_name'], 
         'size' => $uploadData['file_size'], 
         'stored_name' => $uploadData['file_name'], 
     ); 

     $this->file_m->insert($fileData); 

     $this->process($uploadData); // process the uploaded file 
    } 
    } 
:私は、コントローラ

set_time_limit(0); 
ini_set('memory_limit', '20000M'); 
ini_set('max_execution_time', 3000); 

UPDATEの上部にあるこれら3行を持っています

+0

あなたは小さいサイズの –

+0

@AmitGaudファイルがアップロードされますformタグでのenctype = "multipart/form-data" を使用していました。したがって、フォームが 'multipart/form-data'を使用していることは非常に明白です – prakashchhetri

+0

あなたのファイルサイズは$ config ['max_size'] = 100000より大きくなります。 KB? – Kliptu

答えて

2

オーバーライドコードが正常に動作していないようです。

set_time_limit(0); 
ini_set('memory_limit', '20000M'); 
ini_set('max_execution_time', 3000); 

ウェイ1:

更新php.iniファイルの設定。希望の問題が解決されます。

max_execution_time = 259200 
max_input_time = 259200 
memory_limit = 300M 
upload_max_filesize = 200M 
post_max_size = 200M 

ウェイ2:

.htaccess方法

<IfModule mod_php5.c> 
    php_value post_max_size 200M 
    php_value upload_max_filesize 200M 
    php_value memory_limit 300M 
    php_value max_execution_time 259200 
    php_value max_input_time 259200 
    php_value session.gc_maxlifetime 1200 
</IfModule> 

PHP情報ファイルを作成することで、設定を確認します。 test_settings.php

<?php 
    phpinfo(); 
?> 
1
function upload_it() { 
    //load the helper 
    $this->load->helper('form'); 
    $config['upload_path'] = 'application/views/uploads/'; 

    // set the filter image types 
    $config['allowed_types'] = 'xls|xlsx'; 

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

    $this->upload->initialize($config); 

    $this->upload->set_allowed_types('*'); 

    $data['upload_data'] = ''; 

    //if not successful, set the error message 
    if (!$this->upload->do_upload('userfile')) { 
     $data = array('msg' => $this->upload->display_errors()); 

    } else { //else, set the success message 
     $data = array('msg' => "Upload success!"); 

     $data['upload_data'] = $this->upload->data(); 

    } 

    //load the view/upload.php 
    $this->load->view('upload', $data); 

    } 
+0

このコードは質問に答えるかもしれませんが、どのようにして問題が解決されるのかについての追加の文脈を提供すると、回答の長期的価値が向上します。 – Vickel

関連する問題