0
Ich versuche, bestimmte Dateien hochzuladen.Überprüfen Sie die hochgeladene Dateierweiterung. Yii2
Dies ist mein Code:
[['file'], 'file', 'extensions' => ['pdf','php'], 'wrongExtension'=>'pdf,php files only'],
Wenn ich Upload pdf versuchen, funktioniert gut, aber wenn ich Upload PHP-Datei versuchen sagen: "pdf, PHP-Dateien nur". (nach Klick auf Senden Schaltfläche) Ich habe versucht, txt, js, etc ... und ich habe das gleiche Problem.
print_r ($ att-> Datei);
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)
Controller:
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);
}
}
}
, was ich falsch mache?
standardmäßig Yü prüfen Dateien und die Erweiterungen von [MIME-Typ] (https://github.com/yiisoft/yii2/blob/master/framework/validators/FileValidator.php#L351) . Sind auf Ihrem Server Mime-Typen richtig konfiguriert? Hat der Server auch die Erweiterung 'fileinfo' installiert, wie sie von' [FileHelper] (https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseFileHelper.php#L133) 'verwendet wird Mime-Typ-Erkennung zu tun. Sie können überprüfen, ob die Mime-Typ-Validierung deaktiviert ist, aber ich würde es nicht empfehlen. –
versuchen Sie diesen Weg ''Erweiterungen' => 'pdf, php'' – GAMITG