如何上传文件大于2MB(YII2)



我想上传最大大小25MB的文件,但失败了,该文件未输入存储文件夹。Enybody可以说怎么了吗?

in php.ini-development and php.ini-production post_max_size = 25M upload_max_filesize = 25M

模型

[['publikasi_cetak'],'file','skipOnEmpty'=>TRUE,'extensions'=>'rar','maxSize' => 1024*1024*25],

控制器

 public function actionCreate()
{
    $model = new Publikasicetak();
      // [['publikasi_cetak'], 'string', 'max' => 255],
        if ($model->load(Yii::$app->request->post())) 
        {
            $model->tanggal_upload= date('Y-m-d H:i:s');
            $model->username=(Yii::$app->user->identity->username);
            $imageName = $model->judul_cetak;
            $publikasi_cetak = UploadedFile::getInstance($model, 'publikasi_cetak');
            $publikasi_cetak->saveAs('pub_cetak/'.$imageName.'.'.$publikasi_cetak->extension);
            $model->publikasi_cetak = $imageName.'.'.$publikasi_cetak->extension;
            if($model->save())
            {
               $lastInsertID = $model->getPrimaryKey();
               return $this->redirect(['view', 'id' => $lastInsertID]);
            }
           else
           {
               // print_r($model->getErrors()); => check whether any validation errors are there
           }

        } else 
        {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
}

在您的文件路径中可能存在问题,因为Windows和Linux操作系统使用不同的目录分离器。因此,而不是这个:

$publikasi_cetak->saveAs('pub_cetak/'.$imageName.'.'.$publikasi_cetak->extension);

尝试以下操作:

$publikasi_cetak->saveAs('pub_cetak'.DIRECTORY_SEPARATOR.$imageName.'.'.$publikasi_cetak->extension);

如果您使用

运行YII项目
./yii serve

然后使用的php.ini将在
中找到/etc/php/8.1/cli/php.ini

其中8.1将是您的PHP版本更新

post_max_size = 25M
upload_max_filesize = 25M

并重新运行您的项目

您也可以添加<?=phpinfo();?>,以确切查看您的项目使用哪个php.ini文件

最新更新