在控制器操作中,我处理文件上传,如下所示(简称):
$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,具体取决于数据库中文件名的存在。
可能导致麻烦的是什么?
非常感谢任何帮助或指导。
答案 0 :(得分:1)
如果我理解你想要什么,那就不需要递归
String text = PdfTextExtractor.getTextFromPage(reader, 1, semTextExtractionStrategy)