2016-03-29 5 views
0

ファイルをアップロードしようとしています。 2MB以下のファイルをアップロードしても問題ありません。私は2メガバイトより大きくしようとしているときしかし、私は致命的なエラーを取得:ところで大きなファイルをアップロードする方法yii2

Call to a member function saveAs() on null 

を、フォームでの検証が成功している:ルールは良い作品。

私のモデルクラスがあります:

class UploadForm extends Model 
{ 
    /** 
    * @var UploadedFile 
    */ 
    public $xmlFile; 

    public function rules() 
    { 
     return [ 
      [['xmlFile'], 'file', 'maxSize' => 20480000, 'tooBig' => "Limit is 20mb"], 
     ]; 
    } 

    public function upload() 
    { 
     if ($this->validate()) { 
      $this->xmlFile->saveAs('uploads/xml/' . $this->xmlFile->baseName . '.' . $this->xmlFile->extension); 
      return true; 
     } else { 
      return false; 
     } 
    } 
} 

そして、ここでは私のフォームです:

<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> 

<?= $form->field($model, 'xmlFile')->fileInput() ?> 


    <button>Submit</button> 

<?php ActiveForm::end() ?> 

は私のアクション:

if (Yii::$app->request->isPost) { 
      $model->xmlFile = UploadedFile::getInstance($model, 'xmlFile'); 
      if ($model->upload()) { 
       //$import->import($model); 

       return $this->render('upload', ['model' => $model, 'message' => "Success"]); 

      } 
     } 
+2

Plzの値を確認し、サーバーの設定を確認してください。 'php.ini'ファイルの制限は、デフォルトで2MBに設定されることがよくあります。パラメータ 'upload_max_filesize'と' post_max_size'の値を確認してください –

+1

@s_mart Yeeaah!今それは動作します! –

+0

偉大な、私は答えとしてこれを追加します:)幸運 –

答えて

2

問題は、あなたの中の限界であるように見えますphp.iniファイル。デフォルトでは2MBに設定されています。パラメータupload_max_filesizepost_max_size

関連する問題