8

2MB 未満の小さなファイルをアップロードするように codeigniter をセットアップしましたが、正常に動作します。しかし、20MB の大きなファイルをアップロードするのに問題があります >

   function stage1()
    {
    ini_set('upload_max_filesize', '200M');
    ini_set('post_max_size', '200M');                               
    ini_set('max_input_time', 3000);                                
    ini_set('max_execution_time', 3000);

    $config['upload_path'] = './temp/';
    $config['allowed_types'] = 'zip';

    $this->load->library('upload', $config);
    $this->upload->initialize($config);                             
    if(!$this->upload->do_upload('userfile'))                       
    {
      $error = array('error' => $this->upload->display_errors());   
      $this->load->view('upload_form', $error);                     
    }
    else
    {
      $data = array('upload_data' => $this->upload->data());        
      //do stuff
    }
  } 

上記のコードの何が問題なのかわかりません。大きなファイルを受け入れ、スクリプトの実行に時間がかかるように php.ini を上書きしましたが、それでも同じエラーが返されます。

You did not select a file to upload.

繰り返しますが、これは小さなファイルでは機能しますが、大きなファイルでは機能しません。

編集: 私のサーバー プロバイダーではファイルのアップロードが制限されていることが判明したため、ファイルを FTP で転送する以外に解決策はありません。

4

2 に答える 2

14

以下のコードは、phpファイルで使用します。

ini_set( 'memory_limit', '200M' );
ini_set('upload_max_filesize', '200M');  
ini_set('post_max_size', '200M');  
ini_set('max_input_time', 3600);  
ini_set('max_execution_time', 3600);

.htaccessファイルに以下のコードを設定します

php_value upload_max_filesize 128M  
php_value post_max_size 128M  
php_value max_input_time 3600  
php_value max_execution_time 3600

コメントした後、私の答えを編集してください

回答を更新

stage1関数でconfigパラメーターを設定します。

$config['max_size'] = '1000000';
$config['max_width']  = '1024000';
$config['max_height']  = '768000';

その後、それを試してみてください。

于 2012-09-18T17:32:55.933 に答える
1

あなたのサーバーが ini の "upload_max_filesize" プロパティを hphp スクリプトで変更できるかどうかわかりません。ドキュメントhttp://php.net/manual/fr/ini.core.phpによると、デフォルトではできません。

upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL は PHP <= 4.2.3 に注ぎます。

PHP_INI_PERDIR は、ini ファイルに直接書き込む必要があることを意味します。php.ini を制御できない場合、このプロパティをオーバーライドすることはできません。

于 2012-09-18T17:23:17.973 に答える