Heim > PHP-Framework > YII > Hauptteil

yii2 konnte die Datei nicht hochladen

王林
Freigeben: 2020-02-18 15:17:13
Original
2104 Leute haben es durchsucht

yii2 konnte die Datei nicht hochladen

Schauen wir uns zuerst den Code an:

Schauen Sie sich zuerst den Ansichtsteil an:

<form action="<?= Url::to([&#39;default/datafile&#39;]) ?>" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="myFile" id="file" />
    <br />
    <input type="submit" name="submit" value="Submit" />
</form>
Nach dem Login kopieren

Die obige Aktion wird mit der Hilfsklasse von YII erstellt Die intern erkennbare URL ist actionDatafile()

in DeaufaultController.php (empfohlenes Tutorial: yii-Framework)

 public function actionDatafile(){
        if(empty($_FILES)){
            $status = 1;
            $info = &#39;没有文件上传&#39;;
        }
        if($_FILES[&#39;myFile&#39;][&#39;error&#39;] === 0 || $_FILES[&#39;myFile&#39;][&#39;error&#39;] === &#39;0&#39; ){
            //文件上传成功
            $tmp = pathinfo($_FILES[&#39;myFile&#39;][&#39;name&#39;]);
            $new_fname = $tmp[&#39;filename&#39;].&#39;_&#39;.rand(1000000,9999999).&#39;.&#39;.$tmp[&#39;extension&#39;];
            echo $new_fname;
            if(!move_uploaded_file($_FILES[&#39;myFile&#39;][&#39;tmp_name&#39;], &#39;../runtime/file/&#39;.$new_fname)){
                $status = 1;
                $info = &#39;上传(移动)失败&#39;;
            }else{
                $status = 0;
                $info = &#39;上传成功&#39;;
            }
        } else {
            //文件上传失败
            $info = &#39;文件上传失败&#39;;
            switch($_FILES[&#39;myFile&#39;][&#39;error&#39;]){
                case 1:
                    $info = &#39;上传文件超过php.ini中upload_max_filesize配置参数&#39;;
                    break;
                case 2:
                    $info = &#39;上传文件超过表单MAX_FILE_SIZE选项指定的值&#39;;
                    break;
                case 3:
                    $info = &#39;文件只有部份被上传&#39;;
                    break;
                case 4:
                    $info = &#39;没有文件被上传&#39;;
                    break;
                case 5:
                    $info = &#39;上传文件大小为0&#39;;
                    break;
            }
            $status = 1;
        }
        return $info;
    }
Nach dem Login kopieren

nach der Ausführung gefunden

yii2 konnte die Datei nicht hochladen

Lösung:

1. Überprüfen Sie die Konfiguration (php.ini)

file_uploads, upload_max_filesize, post_max_size, upload_tmp_dir wurden festgelegt.

2. Überprüfen Sie die Parameter

und finden Sie diesen Parameter in der Überprüfung des yii-Frameworks Stornierungsbestätigungscode wie folgt:

public function beforeAction($action)
    {
        if ($action->id == &#39;datafile&#39;) {
            $this->enableCsrfValidation = false;
        }
 
        return parent::beforeAction($action);
    }
Nach dem Login kopieren

Weitere programmbezogene Inhalte finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!

Das obige ist der detaillierte Inhalt vonyii2 konnte die Datei nicht hochladen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yii2上传文件失败
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage