验证上传的文件扩展名Yii2

时间:2016-04-03 11:37:15

标签: php pdf yii yii2

我尝试上传特定文件。

这是我的代码:

[['file'], 'file', 'extensions' => ['pdf','php'], 'wrongExtension'=>'pdf,php files only'],

当我尝试上传pdf时,效果很好,但是当我尝试上传php文件时说:" pdf,仅限php文件"。 (点击提交按钮后) 我也试过,txt,js等......我也有同样的问题。

的print_r($ att->文件);

yii\web\UploadedFile Object ( [name] => backup-restore-mysql.pdf [tempName] => C:\xampp\tmp\php8364.tmp [type] => application/pdf [size] => 310139 [error] => 0 )
yii\web\UploadedFile Object ( [name] => requirements.php [tempName] => C:\xampp\tmp\phpE22C.tmp [type] => application/octet-stream [size] => 5051 [error] => 0 )

控制器:

if ($att->load(Yii::$app->request->post()) && $att->validate()){
 $att->file = UploadedFile::getInstance($att, 'file');
    if (!empty($att->file)){
        $extension = $att->file->extension;
        $att->Filename = $att->file->baseName;
        $att->Extension = $extension;
        $att->Size = $att->file->size;
        $att->C_Id = $id;

        if ($att->save()){
            if(!is_dir('files/'.$extension.'/')){
                mkdir(('files/'.$extension.'/'));
            }

            $att->file->saveAs('files/'.$extension.'/'.$att->file->name);
        }
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

$att->upload_file->saveAs(path,nameOfFile);
$att->upload_file = NULL;
$att->save();

感谢所有回复。 @MSost和@ G4M1TG