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"]);
}
}
Plzの値を確認し、サーバーの設定を確認してください。 'php.ini'ファイルの制限は、デフォルトで2MBに設定されることがよくあります。パラメータ 'upload_max_filesize'と' post_max_size'の値を確認してください –
@s_mart Yeeaah!今それは動作します! –
偉大な、私は答えとしてこれを追加します:)幸運 –