0
我想上传特定的文件。验证上传的文件扩展名Yii2
这是我的代码:
[['file'], 'file', 'extensions' => ['pdf','php'], 'wrongExtension'=>'pdf,php files only'],
当我尝试上传PDF,伟大工程,但是当我尝试上传PHP文件说: “PDF,PHP文件只”。 (点击提交按钮后) 我也试过了,txt,js等等,我也有同样的问题。
print_r($ att-> file);
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);
}
}
}
什么,我做错了什么?
默认情况下,Yii将通过[mime type](https://github.com/yiisoft/yii2/blob/master/framework/validators/FileValidator.php#L351)检查文件及其扩展名。 。你的服务器是否有正确配置的MIME类型?另外,服务器是否安装了'fileinfo'扩展,就像'[FileHelper](https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseFileHelper.php#L133)做MIME类型检测。你可以看看关闭MIME类型验证,但我不会推荐它。 –
尝试这种方式''extensions'=>'pdf,php'' – GAMITG