cakePHP中的递归函数

时间:2016-05-26 10:44:16

标签: php cakephp cakephp-3.0

在控制器操作中,我处理文件上传,如下所示(简称):

$originalFileName = $meetingsTask['submitted_file']['name'];    

$file = $meetingsTask['submitted_file'];

    $ext = substr(strtolower(strrchr($file['name'], '.')), 1);

    $arr_ext = array('jpg', 'jpeg', 'png', 'gif', 'pdf', 'doc', 'docx', 'xlsx', 'xls', 'xlt', 'xlm', 'ods','ppt', 'pot', 'pps' );

      if(!in_array($ext, $arr_ext)){
       ...code omitted...
      }

    $newFileName = $this->generateFileName( $originalFileName );

    ...logic continues...

问题是当文件名已经存在时,generateFileName函数总是返回空。这是函数本身:

public function generateFileName( $fileName ){

    if( $this->Tasks->checkFileName( $fileName ) ){

        $prefix = rand(1, 1000);

        $fileName = $prefix . '_' . $fileName;

        $this->generateFileName( $fileName );

    }else{

        return $fileName;

    }

}

checkFileName()仅返回true / false,具体取决于数据库中文件名的存在。

可能导致麻烦的是什么?

非常感谢任何帮助或指导。

1 个答案:

答案 0 :(得分:1)

如果我理解你想要什么,那就不需要递归

String text =  PdfTextExtractor.getTextFromPage(reader, 1, semTextExtractionStrategy)