0

我的功能有问题:

        public uploadfile()
        {
        //$msg=111;
        $instId=Yii::app()->session['loginUser']['intInstId'];
        $userloginId=Yii::app()->session['loginUser']['bintLoginId'];
        $folderId=$_POST['id'];
        $path=DIRECTORYPATH.'/directory/otherAssignment/'.$instId;
        //$tempFolder =$path."/tmp";
        $fileElementName = $folderId;

        if (!empty($_FILES[$fileElementName]['error'])) {
            switch($_FILES[$fileElementName]['error']) {
            case '1':
                $error = 'The uploaded file exceeds the upload_max_filesize "
                    ."directive in php.ini';
                break;
            case '2':
                $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive ".
                    ."that was specified in the HTML form';
                break;
            case '3':
                $error = 'The uploaded file was only partially uploaded';
                break;
            case '4':
                $error = 'No file was uploaded.';
                break;
            case '6':
                $error = 'Missing a temporary folder';
                break;
            case '7':
                $error = 'Failed to write file to disk';
                break;
            case '8':
                $error = 'File upload stopped by extension';
                break;
            case '999': 
            default:
                $error = 'No error code avaiable';
            }
        } elseif (empty($_FILES[$fileElementName]['tmp_name']) 
            || $_FILES[$fileElementName]['tmp_name'] == 'none'
        ) {
            $error = 'No file was uploaded..';
        } else {
            $fileSize=$_FILES[$fileElementName]['size'];
            $status=RepositoryModel::model()
                ->storageSpaceValidation($fileSize);
            if ($status==1) {
                if (!is_dir($path)) {
                    mkdir($path, 0777);
                }

                if (!is_dir($path."/".$userloginId)) {
                    mkdir($path."/".$userloginId, 0777);
                }

                if (!is_dir($path."/".$userloginId."/tmp")) {
                    mkdir($path."/".$userloginId."/tmp", 0777);
                }

                $uploadPath=$path."/".$userloginId."/tmp";
                RepositoryModel::model()
                    ->emptyTempFolder($uploadPath); 
                if (move_uploaded_file(
                $_FILES[$fileElementName]["tmp_name"],
                $uploadPath.'/'.$_FILES[$fileElementName]['name']
                )
                ) {
                    $msg= $_FILES[$fileElementName]['name'];
                }
            } else {
                $error="File can not be uploaded because "
                    ."your Storage spacae capacity is exceed.<br/> "
                    ."Plese Contact with admin!";
            }
        }
    } else {
        $session->destroy();
        $msg= "<script>window.location.href='".SITEURL."';</script>";
    }
    echo "{";
        echo                "error: '" . $error . "',\n";
        echo                "msg: '" . $msg . "'\n";
        echo "}";

}

当我尝试上传文件时,文件已上传,但仍No file was uploaded.显示消息。谁能告诉我上传文件时它被上传到 Temp 文件夹但成功后仍会显示错误消息的原因No file was uploaded.

4

1 回答 1

0

如果您没有上传文件,那么您的表单很可能缺少multipart声明。

确保您的<form>元素包含该enctype="multipart/form-data"属性。

像这样的东西:

<form action="...your-url-here..." enctype="multipart/form-data" method="post">
于 2013-04-16T12:27:25.170 回答