2016-03-29 20 views
0

Dosyaları yüklemeye çalışıyorum. 2mb'den az dosya yüklediğimde sorun yok. Ben 2MB'den daha büyük çalışıyorum Ama ne zaman ölümcül hatayı alıyorum: Bu aradaBüyük dosya yükleme yii2

Call to a member function saveAs() on null 

, formda doğrulama başarılı olduğunu: Kurallar iyi çalışır.

Orada benim modeli sınıftır:

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; 
     } 
    } 
} 

Ve işte benim biçimidir:

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

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


    <button>Submit</button> 

<?php ActiveForm::end() ?> 

Benim eylemi:

sorun sınırları içinde gibi görünüyor
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 parametrelerinin değerlerini kontrol edin, sunucu ayarlarınızı kontrol edin. Genellikle php.ini dosyanızdaki sınırlar varsayılan olarak 2mb'ye ayarlanmıştır. 'Upload_max_filesize' ve' post_max_size' –

+1

@s_mart Yeeaah parametresinin değerlerini kontrol edin! Şimdi çalışıyor! –

+0

Harika, bunu cevap olarak ekleyeceğim :) İyi şanslar –

cevap

2

senin php.ini dosya. Varsayılan olarak 2mb'ye ayarlanmıştır. upload_max_filesize ve post_max_size